控制Python乌龟的形状重叠?

2024-03-29 06:44:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个程序,它接受用户输入(1)要绘制的形状的边数,(2)绘制它的大小,(3)绘制多少,以及(4)使用多少颜色。然后乌龟将这些形状分成一个圆,所有这些形状在圆的中心共享一个顶点。在

让我烦恼的是,如果形状在最后重叠,最后的形状将位于所有形状的顶部,而我希望它们像其他形状一样塞进前面的形状后面。在

我已经设法确定不正确重叠的形状的数量取决于形状的边数-例如,对于三角形,1-6个形状没有重叠。对于7-12,一个形状重叠不正确。对于13-18,两个形状重叠不正确。等等。在

我想先画出他们的多面体,然后再画多面体。在

主要问题:这对海龟来说是可能的吗?如果是的话,我该怎么做呢?(使用3.5)

编辑:我觉得这可能是不可能的。我听到的都是海龟只能在现有的形状上画画。但也有人建议我加上一个屏幕截图,以防增加清晰度;这是一张乌龟画的图片(当被告知用3种不同颜色画9个三角形时)。在

enter image description here

我的目标是在12点的时候把这个完整的三角形塞进一个三角形的下面,但是仍然在它之前的那个上面,就像它最初画的那样。在


Tags: 用户程序编辑数量颜色绘制中心形状
1条回答
网友
1楼 · 发布于 2024-03-29 06:44:43

I'm thinking this is probably impossible.

你低估了海龟的进取心。下面是我的初始示例,展示了您希望解决的不对称问题:

^{1}$

输出

enter image description here

我们真的希望最后的黄色三角形整齐地塞进最初的红色三角形下面,就像一个不断上升的埃舍尔楼梯。我选择这幅插图是因为它有多重重叠,理论上最后的黄色三角形不仅应该在红色的下面,还应该在红色之后的绿色和蓝色下面。同样,在最后的黄色之前的蓝色和绿色应该在红色的下面。等等

enter image description here

我上面的代码比绘制此特定插图所需的代码更复杂,但需要额外的结构来支持以下增强:

一种方法是求出交点,而不是画出最新三角形的那部分。另一种方法是绘制新的三角形,但是在应该被下垫的三角形相交处重新着色。后面的方法是我在下面实现的,使用现有的Python函数通过Sutherland-Hodgman多边形裁剪算法获得交集:

^{pr2}$

输出

enter image description here

相关问题 更多 >