嘿,想要学习如何编写代码,而且我不能把这个练习画出来。 具体获取精确的y轴截取点。 给出的公式给出的X轴点,但我不知道如何获得Y轴点。寻找一个圆的X轴和Y轴截取点 - Python
练习:
输入:圆和y的半径 - 的线的截距。
输出:用具有给定y截距的窗口上的水平线绘制的圆。标记交点的两点。 打印交叉点的x值*公式:X =±√r^ 2 - Y 1 2
Code::
from graphics import *
from math import *
def main():
# enter radius and the y intercept of the line
radius = eval(input("Put in radius:: "))
yinter = eval(input("Put in y intersec:: "))
#Draw window + circle + line
win = GraphWin()
win.setCoords(-10.0, -10.0, 10.0, 10.0)
circle = Circle(Point(0.0,0.0), radius)
mcircle = Circle(Point(0.0,0.0), 0.5)
circle.draw(win)
mcircle.draw(win)
line = Line(Point(-10, 0), Point(10, yinter))
line.draw(win)
#Calculate x axis points of intersept
xroot1 = sqrt(radius * radius - yinter * yinter)
xroot2 = -abs(xroot1)
print("Xroot 1 : ", xroot1)
print("Xroot 2 : ", xroot2)
x = 0
yroot1 = sqrt(radius * radius - x * x)
yroot2 = -abs(yroot1)
print("Yroot 1 : ", yroot1)
print("Yroot 2 : ", yroot2)
#mark two points of intersept in red
sc1 = Circle(Point(xroot1, yroot1), 0.3)
sc1.setFill('red')
sc2 = Circle(Point(xroot2, yroot2), 0.3)
sc2.setFill('red')
sc1.draw(win)
sc2.draw(win)
main()
Answer - With Radius of 8 and Y intersect point of 2
Yroot1 = 7.75
Yroot2 = -7.75
Xroot1 = 8.0
Xroot2 = -8.0
谢谢,更新了代码,但标记仍然有些偏离 – StephenJ2027
这很奇怪。在哪个方向关闭?这是否发生在所有点上? – Mathias711
啊,我明白了。我不熟悉绘制这些点,但通常你应该给X和Y坐标。 xroot1和xroot2的相应Y坐标是当然的0,而不是yroot1或yroot2。其他yroot点也是如此。图片中应该有4个点(或更少,如果圆圈接触轴而不是十字)。 – Mathias711