使用 python turtle 画一个带横线的三角形

drawing a triangle with lines across using python turtle

我仍在学习并尝试用从下到上的横线画一个三角形,但我很难弄清楚。我能够拿起乌龟并移动它,画得稍微大一点或小一点,使几个三角形包围在一个更大的三角形中,但我正在努力解决 table 试图弄清楚这一点。任何帮助是极大的赞赏。提前致谢

import turtle

t = turtle.Turtle()
def drawTriangle(t, side):
  t.forward(side)
  t.left(120)



for x in range (3):
  drawTriangle(t, 100)


drawTriangle()

这是一个基本的三角形,如果你有一个叫做 drawTriangle 的函数,那么让它绘制一个三角形就比较有意义,而不是你必须调用三次才能得到一个三角形的东西

import turtle

def drawTriangle(t, side):
  for _ in range(3):
    t.forward(side)
    t.left(120)

t = turtle.Turtle()
drawTriangle(t, 200)

不确定你所说的横线是什么意思,所以如果你编辑问题以使其更清楚,那么希望我会及时注意到编辑答案以添加该部分 - 好的,现在我看到图片了,即将出现。 ......

这样就可以了......

import turtle

def drawTriangle(t, side):
  for _ in range(3):
    t.forward(side)
    t.left(120)

t = turtle.Turtle()
t.penup()
t.setheading(-120)
t.setposition(0, 100)
t.pendown()

for side in range(40, 240, 40):
  drawTriangle(t, side)

这是在等腰三角形上运行的基本解决方案,不一定将整个三角形均匀切片(如 OP 的插图所示):

from turtle import Screen, Turtle

SHOWN, TOTAL = 5, 7  # five of seven equal slices will be shown
WIDTH, HEIGHT = 540, 270  # dimensions of (isosceles) triangle

screen = Screen()
turtle = Turtle()

for n in range(TOTAL - SHOWN + 1, TOTAL + 1):
    ratio = n / TOTAL
    turtle.goto(WIDTH/2 * ratio, -HEIGHT * ratio)
    turtle.setx(-WIDTH/2 * ratio)
    turtle.home()

turtle.hideturtle()
screen.exitonclick()

另一种方法是使用冲压而不是绘图。在这种情况下不一定更简单,但对于某些人来说,一次绘制整个三角形可能更容易想象:

from turtle import Screen, Turtle

SHOWN, TOTAL = 5, 7  # five of seven equal slices will be shown
WIDTH, HEIGHT = 540, 270
DELTA = ((TOTAL - 1) + HEIGHT / TOTAL) / 2  # a bit of fudging here

CURSOR_SIZE = 20

screen = Screen()
screen.mode('logo')

turtle = Turtle()
turtle.hideturtle()
turtle.shape('triangle')
turtle.fillcolor('white')

for n in range(TOTAL, TOTAL - SHOWN, -1):
    ratio = n / TOTAL
    turtle.shapesize(ratio * WIDTH / CURSOR_SIZE, ratio * HEIGHT / CURSOR_SIZE)
    turtle.stamp()
    turtle.forward(DELTA)

screen.exitonclick()