我是 python 新手,我需要一些帮助。
我有一个 python 脚本来查找圆心的 X 坐标。如果 r1 很小,则 xA1 和 xA2 是复数(表示错误消息:ValueError: math domain error)。我的问题是,如何在 while 语句中使用此错误消息?我必须将整个代码复制到 while 语句下面吗?是否可以链接到第一个方程 xs2=r3*math.sin(beta2r)?
谢谢您的回答。
罗马
import math
r1=0;
r2=110.5;
r3=212.5;
beta2d=35;
beta1dpoz=45;
beta2r=beta2d*math.pi/180
xs2=r3*math.sin(beta2r)
ys2=r1-r3*math.cos(beta2r)
kruh1=math.pow(xs2,2)+math.pow(ys2,2)
kruh2=math.pow(r1,2)+math.pow(r3,2)-2*r1*r3*math.cos(beta2r)
xA1=1.0/2*((xs2*(1+((math.pow(r1,2)-math.pow(r2,2))/(math.pow(xs2,2)+math.pow(ys2,2)))))+(ys2*(math.sqrt(((2*(math.pow(r1,2)+math.pow(r2,2)))/(math.pow(xs2,2)+math.pow(ys2,2)))-(math.pow(((math.pow(r1,2)-math.pow(r2,2))/(math.pow(xs2,2)+math.pow(ys2,2))),2))-1))))
xA2=1.0/2*((xs2*(1+((math.pow(r1,2)-math.pow(r2,2))/(math.pow(xs2,2)+math.pow(ys2,2)))))-(ys2*(math.sqrt(((2*(math.pow(r1,2)+math.pow(r2,2)))/(math.pow(xs2,2)+math.pow(ys2,2)))-(math.pow(((math.pow(r1,2)-math.pow(r2,2))/(math.pow(xs2,2)+math.pow(ys2,2))),2))-1))))
xAmat=[xA1,xA2]
xA=max(xAmat)
while ('ValueError: math domain error'):
r1=r1+0.1
.
.
.
xA=