本版
查看: 18119|回复: 36

用turtle制作勾股海螺

[复制链接]

[Lv.8]超级萝卜

楼主(1#)
发表于 2022-3-19 21:41:12 | 只看该作者 |只看大图 |倒序浏览 |阅读模式
这周讲勾股定理,班主任突发奇想,让我编一个程序来画勾股海螺图(如图所示)



说起来容易,但对于我这个小白来说,实践起来真的很难!
因为要想知道画笔每次转动角度,还涉及到了三角函数知识(应该是九年级的吧?)
最终,after 4 hours……
I did it!



(有种要崩溃的感觉)
我肯定绕了弯路,恳请大佬指点!


源码:
from turtle import *
import math

colorName=['blue','yellow']
n=-1

speed(10)
dir=pos()
c=100
begin_fill()
backward(100)
right(90)

while True:
if n==1:
n=0
else:
n=n+1
begin_fill()
a=c
b=100
fillcolor(colorName[n])
forward(100)
dir1=pos()
goto(dir)
c=(c ** 2+10000) ** 0.5
end_fill()
A = math.degrees(math.acos((a * a - b * b - c * c) / (-2 * b * c)))
B = math.degrees(math.acos((b * b - a * a - c * c) / (-2 * a * c)))
C = math.degrees(math.acos((c * c - a * a - b * b) / (-2 * a * b)))
left(90-A)
goto(dir1)

#测试
print("当前边长:\n")
print("a="+str(a))
print("b="+str(b))
print("c="+str(c))
print("-"*20)

https://img.picui.cn/free/2025/05/25/6832f9d6d564b.jpg
回复

支持 | 反对  0 支持 / 0 反对 评分 举报

[Lv.8]超级萝卜

沙发(2#)
 楼主| 发表于 2022-3-19 21:44:29 | 只看该作者
顺便又编了一个计算机课脱控程序,打包成EXE,周一给计算机老师一个惊喜


https://img.picui.cn/free/2025/05/25/6832f9d6d564b.jpg

Super Moderator

板凳(3#)
发表于 2022-3-20 10:43:37 | 只看该作者
LZ自学能力很强

[Lv.8]超级萝卜

矛盾综合体(喜欢折腾又懒得折腾)

地板(4#)
发表于 2022-3-20 11:23:53 | 只看该作者
可以学习折腾自己喜欢的东西好幸福,江苏的学生羡慕的想哭

Super Moderator

实习版主

5#
发表于 2022-3-20 12:13:36 | 只看该作者
楼主在折腾的道路上找到了正确的好方向,加油!

Super Moderator

实习版主

6#
发表于 2022-3-20 12:17:44 | 只看该作者
楼主参加这个活动,第二十三届全国学生信息素养提升实践活动。
http://huodong2000.ncet.edu.cn/

Super Moderator

实习版主

7#
发表于 2022-3-20 12:19:05 | 只看该作者
中央电化教育馆举办的活动,正规,权威!

[Lv.8]超级萝卜

折腾折腾应是绿肥红瘦...

8#
发表于 2022-3-20 12:40:21 | 只看该作者
楼主上初二下吧?
画这东西不应该用几何画板吗?

联系我们(Contact)|手机版|萝卜头IT论坛 ( 苏ICP备15050961号-1 )

GMT+8, 2026-10-30 04:31 , Processed in 0.07 second(s), 20 queries , Gzip On.

快速回复 返回顶部 返回列表