做一个阴阳圈
Make a Yin-Yang circle
我一直在尝试在Python上尝试阴阳圆,但到目前为止我只能做一个黑色的半圆。在这里,我附上了它对我来说是什么样子以及它应该是什么样子。我还应该在我的代码中添加什么?
*为了让我更容易理解,着色时使用填充功能。
我的代码:
import turtle
turtle.begin_fill()
turtle.circle(50,180)
turtle.end_fill()
turtle.hideturtle()
对我来说是什么样的:
results
应该是这样的:
desired results
你已经很接近了,如果你从数学上考虑阴阳符号,它只是一堆弧线,两个大的在外面,两个在里面,长度的一半。
如果外弧的长度为 50,则内弧需要为 25。海龟默认逆时针移动,因此要获得顺时针曲线,请使用负半径。像这样:
turtle.begin_fill()
turtle.circle(50, 180)
turtle.circle(25, 180)
turtle.circle(-25, 180)
turtle.end_fill()
turtle.circle(-50, 180)
之后小乌龟会回到原点,画圈的位置大概在小乌龟正下方50度的四分之三又四分之三处,只需要画两个完整的圆圈即可。
尽管我很喜欢@CameronFerguson 的单曲线方法 (+1),但初学者可能更容易将其简单地视为五个圆圈。正如您已经实现的那样,第一个最大的圆圈在一侧被填充。接下来的两个圆是原始半径的一半,以垂直轴为中心,颜色相反:
为最小的两个圆选择一个大小,上面是原始半径的1/8,使用与前面圆相同的中心点并再次反转颜色。现在,切换到最终颜色,并适当抬高笔以避免不需要的线条,我们得到:
经过一些额外的思考,两组内圈可以循环完成,将对turtle.circle()
的调用次数减少一半。但是,如果您对@CameronFerguson 的曲线方法感到满意,那就去吧!
我一直在尝试在Python上尝试阴阳圆,但到目前为止我只能做一个黑色的半圆。在这里,我附上了它对我来说是什么样子以及它应该是什么样子。我还应该在我的代码中添加什么? *为了让我更容易理解,着色时使用填充功能。
我的代码:
import turtle
turtle.begin_fill()
turtle.circle(50,180)
turtle.end_fill()
turtle.hideturtle()
对我来说是什么样的: results
应该是这样的: desired results
你已经很接近了,如果你从数学上考虑阴阳符号,它只是一堆弧线,两个大的在外面,两个在里面,长度的一半。 如果外弧的长度为 50,则内弧需要为 25。海龟默认逆时针移动,因此要获得顺时针曲线,请使用负半径。像这样:
turtle.begin_fill()
turtle.circle(50, 180)
turtle.circle(25, 180)
turtle.circle(-25, 180)
turtle.end_fill()
turtle.circle(-50, 180)
之后小乌龟会回到原点,画圈的位置大概在小乌龟正下方50度的四分之三又四分之三处,只需要画两个完整的圆圈即可。
尽管我很喜欢@CameronFerguson 的单曲线方法 (+1),但初学者可能更容易将其简单地视为五个圆圈。正如您已经实现的那样,第一个最大的圆圈在一侧被填充。接下来的两个圆是原始半径的一半,以垂直轴为中心,颜色相反:
为最小的两个圆选择一个大小,上面是原始半径的1/8,使用与前面圆相同的中心点并再次反转颜色。现在,切换到最终颜色,并适当抬高笔以避免不需要的线条,我们得到:
经过一些额外的思考,两组内圈可以循环完成,将对turtle.circle()
的调用次数减少一半。但是,如果您对@CameronFerguson 的曲线方法感到满意,那就去吧!