turtle python 模拟器的起始像素
Start pixel of turtle python simulator
乌龟模拟器对于移动物体很有帮助,但我面临的问题是我不知道 'turtle arrow' 开始绘制的屏幕像素值。此外,在绘制圆时,很难确定圆心的像素坐标。这是一个代码示例:
import turtle
ob = turtle.Turtle()
ob.right(100)
#Where does the turtle start with its head (pixel coordinates)?
ob.circle(5)
#Now the turtle draws a circle with radius 5, but in which direction will it point at first?
#How do we figure out the centre of this circle?
有人可以帮我解决这两个问题吗?
PS: 我正在使用 python 3.10
import turtle
ob = turtle.Turtle()
ob.right(100)
Where does the turtle start with its head (pixel coordinates)?
海龟从原点 (0, 0)
开始。由于您没有移动乌龟,它的 head 仍在原点上方。
ob.circle(5)
Now the turtle draws a circle with radius 5, but in which direction will it point at first?
乌龟开始在乌龟当前指向的任何方向绘制圆。对于刚孵出的海龟,0 度在屏幕上右边。 (使用模式 'logo'
更改此默认值。)
自从你的乌龟第一次向右转 100 度后,它将开始以 260 度航向 (360 - 100) 开始绘制,稍微偏向直线向下的左侧(即 270 度。)
How do we figure out the centre of this circle?
如果圆圈是用刚孵化的海龟画的,那么圆心就是(0, 5)
。 (例如,要使圆在 (0, 0)
上居中,我们将在 Y 方向上移动 -5
(即 -radius)像素。)
但是你的乌龟以 260 度的航向开始。而且,默认情况下,圆是逆时针绘制的。因此,我们希望您的圆心位于 (5, 0)
附近,270 度的航向将绘制圆心。如果我们计算一下,向圆心旋转 90 度并投影一条 5 像素的线,我们得到:
from math import cos, sin, radians
print(5 * cos(radians(260 + 90)), 5 * sin(radians(260 + 90)))
输出:4.92403876506104 -0.868240888334652
同样,我们也可以通过以下方式获取中心位置:
ob.left(90)
ob.penup()
ob.forward(5)
print(ob.position())
输出:(4.92,-0.87)
乌龟模拟器对于移动物体很有帮助,但我面临的问题是我不知道 'turtle arrow' 开始绘制的屏幕像素值。此外,在绘制圆时,很难确定圆心的像素坐标。这是一个代码示例:
import turtle
ob = turtle.Turtle()
ob.right(100)
#Where does the turtle start with its head (pixel coordinates)?
ob.circle(5)
#Now the turtle draws a circle with radius 5, but in which direction will it point at first?
#How do we figure out the centre of this circle?
有人可以帮我解决这两个问题吗?
PS: 我正在使用 python 3.10
import turtle
ob = turtle.Turtle()
ob.right(100)
Where does the turtle start with its head (pixel coordinates)?
海龟从原点 (0, 0)
开始。由于您没有移动乌龟,它的 head 仍在原点上方。
ob.circle(5)
Now the turtle draws a circle with radius 5, but in which direction will it point at first?
乌龟开始在乌龟当前指向的任何方向绘制圆。对于刚孵出的海龟,0 度在屏幕上右边。 (使用模式 'logo'
更改此默认值。)
自从你的乌龟第一次向右转 100 度后,它将开始以 260 度航向 (360 - 100) 开始绘制,稍微偏向直线向下的左侧(即 270 度。)
How do we figure out the centre of this circle?
如果圆圈是用刚孵化的海龟画的,那么圆心就是(0, 5)
。 (例如,要使圆在 (0, 0)
上居中,我们将在 Y 方向上移动 -5
(即 -radius)像素。)
但是你的乌龟以 260 度的航向开始。而且,默认情况下,圆是逆时针绘制的。因此,我们希望您的圆心位于 (5, 0)
附近,270 度的航向将绘制圆心。如果我们计算一下,向圆心旋转 90 度并投影一条 5 像素的线,我们得到:
from math import cos, sin, radians
print(5 * cos(radians(260 + 90)), 5 * sin(radians(260 + 90)))
输出:4.92403876506104 -0.868240888334652
同样,我们也可以通过以下方式获取中心位置:
ob.left(90)
ob.penup()
ob.forward(5)
print(ob.position())
输出:(4.92,-0.87)