Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 家庭作业帮助?用于制作螺旋描记器_Python - Fatal编程技术网

Python 家庭作业帮助?用于制作螺旋描记器

Python 家庭作业帮助?用于制作螺旋描记器,python,Python,所以在休息周,我们的老师给了我们一个需要呼吸记录仪的小项目,这是他以前帮助我们写的代码 from graphics import * from math import * def ar(a): return a*3.141592654/180 def main(): x0 = 100 y0 = 100 startangle = 60 stepangle = 120 radius = 50 win = GraphWin() p

所以在休息周,我们的老师给了我们一个需要呼吸记录仪的小项目,这是他以前帮助我们写的代码

from graphics import *
from math import *

def ar(a):
    return a*3.141592654/180

def main():
    x0 = 100
    y0 = 100
    startangle = 60
    stepangle = 120
    radius = 50

    win = GraphWin()

    p1 = Point(x0 + radius * cos(ar(startangle)), y0 + radius * sin(ar(startangle)))

    for i in range(stepangle+startangle,360+stepangle+startangle,stepangle):
        p2 = Point(x0 + radius * cos(ar(i)), y0 + radius * sin(ar(i)))
        Line(p1,p2).draw(win)
        p1 = p2

    input("<ENTER> to quit...")
    win.close()

main()
从图形导入*
从数学导入*
def ar(a):
返回a*3.141592654/180
def main():
x0=100
y0=100
startangle=60
步进角=120
半径=50
win=GraphWin()
p1=点(x0+半径*cos(ar(星缠结)),y0+半径*sin(ar(星缠结)))
对于范围内的i(步进角+星形缠结,360+步进角+星形缠结,步进角):
p2=点(x0+半径*cos(ar(i)),y0+半径*sin(ar(i)))
线(p1,p2)。平局(赢)
p1=p2
输入(“退出…”)
赢
main()

然后,他想让我们开发一个程序,连续绘制12个等边三角形(在一个360度的圆中,每次将三角形旋转30度)。这可以通过“步进”STARTANGLE参数来实现。我的问题是,我被困在从这里走到哪里,他所说的“步进”是什么意思?我假设做一些循环,有人能给我一个正确的步骤吗?

这是一个使用matplotlib的解决方案。一般程序将是相同的。但是,为了使用允许使用的库,您必须修改它

from math import radians, sin, cos 
import matplotlib.pyplot as plt

startAngle = 0 
stepAngle = 30
origin = (0,0)

points = []
points.append(origin)
points.append((cos(radians(startAngle)), sin(radians(startAngle))))

for i in range(startAngle + stepAngle, 360 + stepAngle, stepAngle):
    x = cos(radians(i))
    y = sin(radians(i))
    points.append((x,y))
    points.append(origin)
    points.append((x,y))

x,y = zip(*points) #separate the tupples into x and y coordinates. 

plt.plot(x,y) #plots the points, drawing lines between each point
plt.show()

plt.plot
在列表中的每个点之间绘制线。我们添加原点,这样我们得到的是三角形,而不是围绕中心的多边形

我的猜测(因为我在这里只是猜测,这是一个注释而不是答案)是,他说的是使用
范围的
步骤
值,就像他在示例代码中所做的那样。如果您不知道,范围的工作方式是:
range(start,stop,step)
,从
start
开始,在
stop
之前结束一个,每次移动
step
距离。我建议您在此处阅读adsmith的注释,然后尝试拨弄参数以了解发生了什么。虽然此代码将绘制多边形,但不会绘制三角形。你还得给原点画几条线。我有点困惑,为什么你的老师会让你从
数学
导入所有东西。。。但是不要使用
pi