Labview portál - téma megtekintése - egy pont érintőkörének egy érintkezési pont létrehozása

Hello mindenkinek!
A feladat az, hogy egy tetszőleges kört (x1, y1, r1) adjon meg, és egy tetszőleges pontból (adott x2, y2) rajzoljon egy érintőt ezen a körön.






Talált egy ilyen elmélet:

Az oldat útvonala megközelítőleg azonos lehet (lásd az ábrát).
Adott: az x0, y0, az R sugár és az a, b koordináták tetszőleges helyén lévő középpontja.
Megtaláljuk a szög alfáját, mint arctg ((b-y0) / (a-x0))
Ezután megtaláljuk a béta szögét, mint arccot ​​(R / Sqrt ((a-x0) ^ 2 + (b-y0) ^ 2)
Most keresse meg a gamma szöget 2n-alfa-béta-ként
Végül megtaláljuk az x1, y1 pontot: x1 = x0-R * cos (gamma) és y1 = y0 + R * sin (gamma)
Amikor az x1, y1 pontot találjuk, alkalmazzuk az érintő számára a képletet a körön lévő ponton.


Olyan programot készítettem:







De nyilvánvalóan az érintő helyesen van felépítve, ha csak a pont X koordinátája kisebb, mint a kör középpontjának X koordinátája, és ha több - az érintő eltolódik.
Nem értem, mi a hiba. A megoldás valószínűleg valahol a felszínen van

Madman írta: Nem értem, mi a hiba. A megoldás valószínűleg valahol a felszínen van


Nos. az idő nem áll rendelkezésre, de
Az érintőnek kettőnek kell lennie

És a hiba a trigonometrikus függvények miatt merülhet fel, pontosabban ez nem egy funkcióhiba, és az Ön


Például a sin és cos függvények periódikusak, és ennek megfelelően a sin (x) függvény azonos értéke lesz az x különböző értékeire. Az inverz függvény számítása arcsin [sin (x)]. nem az a tény, hogy a válasz helyes.

Soha nem érdekelt ez, de jó. Meg kell kapnia egy sor pontot, ahonnan az "érzékenység" ellenőrzésével válaszd ki a helyeseket.

Biztosan tévedhetek, de remélem, hogy javítani fogok.

Számos alapismeretek ismerete sok tényező ismeretét felszabadítja!