#2 z
Veľmi pekne ďakujem za odpoveď. Chcel by som sa ešte opýtať na na druhý While loop. Chcem aby mi počítalo beta1d. Chcem aby mi ho počítalo dovtedy, kým nenájde hodnotu, ktorá je beta1d>=beta1dpoz. To má dosiahnúť tak,že otestuje beta1d=deltad-gammad1 a keď je ta1d<beta1dpoz,tak pridá k r1, ktorá vstupuje do loop-u hodnotu 0.1 a otestuje to celé znova r1=r1+0.1. No bohužiaľ mi to nepočíta resp. nepridáva 0.1 :( . Kde robím chybu? Alebo som nesprávne pochopil syntaxu?
ďakujem za vysvetlenie a pomoc
beta1d=None
while beta1d>=beta1dpoz:
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)
p=math.sqrt(2*math.pow(r1,2)+math.pow(r3,2)-2*r1*r3*(math.sin(beta2r)+math.cos(beta2r)))
if r2>p:
yA=math.sqrt(math.pow(r1,2)-math.pow(xA,2))
elif r2<p:
yA=-1*math.sqrt(math.pow(r1,2)-math.pow(xA,2))
print(r1)
gamma=math.pi/2-math.atan(yA/xA)
gammad=gamma*180/math.pi
#print ('gamma',gammad)
L=2*math.pi*r1*gammad/360;
#print('L',L)
b=abs(abs(xs2)-abs(xA));
a=abs(abs(ys2)-abs(yA));
gammad1=gammad-90;
etad=math.atan(b/a)*180/math.pi;
deltad=180-90-etad;
try:
beta1d=deltad-gammad1
except beta1d<beta1dpoz:
r1=r1+0.1
print('r1',r1)
print('beta1d',beta1d)