使用 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()
我仍在学习并尝试用从下到上的横线画一个三角形,但我很难弄清楚。我能够拿起乌龟并移动它,画得稍微大一点或小一点,使几个三角形包围在一个更大的三角形中,但我正在努力解决 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()