gpt4 book ai didi

python - 创建重复的圆x和y轴python

转载 作者:行者123 更新时间:2023-12-01 05:53:17 26 4
gpt4 key购买 nike

我希望在 python 中生成这个模式:

red circles and semicircles

这是我生成的代码,它生成 5 个完整的圆圈:

def fdShape():
win = GraphWin("pdShape",200,200)
centre = Point(20,100)
for x in range(5):
circle = Circle(centre, 20)
circle.setFill("red")
centre = Point((centre.getX() + 40),100)
circle.draw(win)

但是我对如何获得上方和下方的半圆感到困惑。有人有主意吗?我不确定如何让代码沿 y 轴重复。

非常感谢任何帮助。

谢谢。

最佳答案

这是一个使用 Python 的海龟图形的解决方案,但可能不会按照您想象的方式工作:

from turtle import Turtle, Screen, Shape

COUNT = 5
SIZE = 400
RADIUS = SIZE / COUNT
STAMP_UNIT = 20

screen = Screen()

circle_in_square = Shape("compound")
turtle = Turtle(shape="square")
circle_in_square.addcomponent(turtle.get_shapepoly(), "white")
circle_in_square.addcomponent([(-10, 10), (-10, -10)], "black")
circle_in_square.addcomponent([(10, -10), (10, 10)], "black")

turtle.shapesize(SIZE / STAMP_UNIT * 1.01)
turtle.stamp() # stamp background to get a border

turtle.shape("circle")
turtle.shapesize(1.0)
circle_in_square.addcomponent(turtle.get_shapepoly(), "red", "black")

screen.register_shape("squircle", circle_in_square)
turtle.shape("squircle")
turtle.shapesize(RADIUS / STAMP_UNIT)
turtle.penup()

for y in range(1 - COUNT, 1):
for x in range(-COUNT//2 + 1, COUNT//2 + 1):
for sign in (1, -1):
turtle.goto(x * RADIUS, y * RADIUS/2 * sign)
turtle.stamp()

screen.exitonclick()

它首先创建一个我称之为方圆的图章,它是一个白色正方形上的红色圆圈,顶部和底部有黑色边框:

enter image description here

然后它会在水平方向上并排印出一堆,在垂直方向上重叠 50%:

enter image description here

压印了一点外边框。这是我的“通过压印改善生活”系列的一部分(而不是绘图,您的解决方案和其他解决方案尝试回答。

关于python - 创建重复的圆x和y轴python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13480654/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com