使用python中的turtle库绘画指定大小的三角形
程序员文章站
2022-04-01 14:46:31
...
想要绘制三角形,就要先知道三角形ABC的三边:AB AC BC,以及它的三个角:∠ABC ∠BAC ∠ACB
让使用者输入他们:
ab=input("请输入△ABC的边AB:")
ac=input("请输入△ABC的边AC:")
bc=input("请输入△ABC的边BC:")
abc=input("请输入△ABC中∠ABC的大小:")
bac=input("请输入△ABC中∠BAC的大小:")
acb=input("请输入△ABC中∠ACB的大小:")
但由于输入的数值为字符类型,需要输入以下代码将其转化为整型
AB=int(float(ab))*10
AC=int(float(ac))*10
BC=int(float(bc))*10
ABC=int(float(abc))*10
BAC=int(float(bac))*10
ACB=int(float(acb))*10
接下来就是画图部分了
画图需要turtle库,插入
import turtle
然后再进行绘制三角形
t=turtle.Pen()
turtle.setup(width=1000,height=1000)
t.pensize(5)
t.pencolor("red")
t.fillcolor("yellow")
t.up()
t.goto(-450,-450)
t.down()
t.begin_fill()
t.fd(AB)
t.rt(ABC)
t.fd(BC)
t.rt(ACB)
t.fd(AC)
t.end_fill()
但我们需要验证使用者该出的数据是否可以生成一个三角形,所以需要在输入时放入判断
i=True
while i==True:
ab=input("请输入△ABC的边AB:")
ac=input("请输入△ABC的边AC:")
bc=input("请输入△ABC的边BC:")
abc=input("请输入△ABC中∠ABC的大小:")
bac=input("请输入△ABC中∠BAC的大小:")
acb=input("请输入△ABC中∠ACB的大小:")
AB=int(float(ab))*10
AC=int(float(ac))*10
BC=int(float(bc))*10
ABC=int(float(abc))*10
BAC=int(float(bac))*10
ACB=int(float(acb))*10
if (AB+AC<BC or AB+BC<AC or AC+BC<AB)or(ABC+BAC+ACB!=180):
print("这个数据无法生成三角形,请重新输入")
else:
i=False
所以就形成了最后的成品:
import turtle
i=True
while i==True:
ab=input("请输入△ABC的边AB:")
ac=input("请输入△ABC的边AC:")
bc=input("请输入△ABC的边BC:")
abc=input("请输入△ABC中∠ABC的大小:")
bac=input("请输入△ABC中∠BAC的大小:")
acb=input("请输入△ABC中∠ACB的大小:")
AB=int(float(ab))*10
AC=int(float(ac))*10
BC=int(float(bc))*10
ABC=int(float(abc))*10
BAC=int(float(bac))*10
ACB=int(float(acb))*10
if (AB+AC<BC or AB+BC<AC or AC+BC<AB)or(ABC+BAC+ACB!=180):
print("这个数据无法生成三角形,请重新输入")
else:
i=False
t=turtle.Pen()
turtle.setup(width=1000,height=1000)
t.pensize(5)
t.pencolor("red")
t.fillcolor("yellow")
t.up()
t.goto(-450,-450)
t.down()
t.begin_fill()
t.fd(AB)
t.rt(ABC)
t.fd(BC)
t.rt(ACB)
t.fd(AC)
t.end_fill()
上一篇: LeetCode刷题-数据库(MySQL)- 610.判断三角形
下一篇: 二分法模板程序