做一个阴阳圈

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 的曲线方法感到满意,那就去吧!