Ha jol ertem akkor:
currentWidth, ratioWto??, A[xyz], B[xyz] adott
es
C[xyz], D[xyz] -re vagy kivancsi.
Ekkor:
(Cx-Ax)^2+(Cy-Ay)^2+(Cz-Az)^2=(currentWidth*ratioWtoAC)^2 (Cx-Bx)^2+(Cy-By)^2+(Cz-Bz)^2=(currentWidth*ratioWtoBC)^2
C, ket, egy A es egy B kozeppontu, gomb metszokoren van, legyen a kor sugara rC (kiszamithato: A, B, ratioWto[AB]C -bol).
Ha nem metszenek nincs mo.
(Dx-Bx)^2+(Dy-By)^2+(Dz-Bz)^2=(currentWidth*ratioWtoBD)^2
D pedig egy B kozeppontu gomb felszinen, legyen a gomb sugara rD = currentWidth*ratioWtoBD.
(Dx-Cx)^2+(Dy-Cy)^2+(Dz-Cz)^2=(currentWidth*ratioWtoCD)^2
Tovabba D egy a C köre körüli tórusz belsejeben van, legyen a torusz vastagsaga 2*rT, rT = currentWidth*ratioWtoCD.
Ha a torusz es az rD sugaru gomb nem metsz nincs mo.
Eddig tudjuk, hogy C egy koron, D egy gombfelszin szeleten van.
Cz<0 Dz>0
miatt C es D nem lehet tavolabb a z=0 siktol mint rT. Igy C lehetseges ertekei a korvonal olyan pontjaira korlatozodik, melyekre |Cz| < rT, D pedig a gombelszin azon pontjai, melyek a lehetseges C-k koruli rT gombok belsejeben vannak.
Ha C halmazának vagy D halmazának nincs ilyen tulajdonságu pontja, nincs megoldás.
get2Ddistance(Cx,Cy,0,0)/get2Ddistance(Dx,Dy,0,0)=get2Ddistance(Ax,Ay,0,0)/get2Ddistance(Bx,By,0,0)
Jobb oldala szamithato, ebbol kovetkezik, hogy C es D egy-egy origo kozeppontu gombon van, amely gombok sugarának aránya állandó. Ezen gombokre további korlátozás, hogy csak azok a sugarak ervenyesek, amelyekre a felszin tartalmaz C ill. D lehetseges ertekei kozul pontot.
Konkluzio:
Szerintem nem egyertelmuen megoldhato. C a korvonal D a gombfelszin egy pontja.