【问题标题】:Python Turtle or any other library for 2D drawingPython Turtle 或任何其他用于 2D 绘图的库
【发布时间】:2021-01-23 04:37:41
【问题描述】:

我正在使用 python3.7 及其数学和海龟模块 我必须用弧线绘制二维草图。例如

  1. 画一个半径为1.5m的主圆
  2. 从 5 度到 75 度绘制另一条半径分别为 1.7m 和 2.8m 的圆弧并连接它们的端点
  3. 现在在距离主圆 2m 处以 5 度角绘制另一个圆,半径为 0.4m。
  4. 以 10 度的间隔绘制径向线,并在这些径向线上写下它们各自的角度。

主圆的半径可以达到 10m。所有这些值我都可以用 python 的简单数学库来计算。但要画画,我想我可以使用海龟模块。但它以非常有限的值绘制像素。有没有办法将这些值缩放到海龟模块中的像素,或任何其他用于这项工作的图形库。 预期的输出是这样的。enter image description here

【问题讨论】:

  • 有一种方法可以用海龟做到这一点,但首先你真的想要一个“半径为 1.5m 的圆”,即半径为 1.5 米吗?它不会出现在您的屏幕上!或者是否涉及其他一些比例因子?还是你的意思是 1.5 厘米?
  • 实际上画出来的就是1.5m的圆。我想要一种方法来缩小所有维度,而不是每次都除以某个值。换句话说,我想要一种方法将我的 400 X 400 像素窗口视为 20 X 20m 画布,以便我可以使用我的实际尺寸。

标签: python-3.x python-turtle


【解决方案1】:

Pillow 库(PIL fork)可以做到 https://pillow.readthedocs.io/en/stable/

【讨论】:

    【解决方案2】:

    使用setworldcoordinates() 定义您的自定义坐标系:

    from turtle import Screen, Turtle
    
    # I want a method to treat my 400 X 400 pixel window as
    # a 20m X 20m canvas so that I can use my actual dimension
    
    screen = Screen()
    screen.setup(400, 400)
    screen.setworldcoordinates(-10, -10, 10, 10)
    
    turtle = Turtle()
    
    # Draw a main circle with radius 1.5m
    
    turtle.penup()
    turtle.sety(-1.5)
    turtle.pendown()
    turtle.circle(1.5)
    
    screen.exitonclick()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-08
      • 2016-11-20
      • 1970-01-01
      • 2011-08-02
      • 1970-01-01
      • 2011-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多