Przesuwanie punktu na zadaną odległość

0

Dane są punkty A i B - współrzędne są całkowite (piksele). Odległość między punktami wynosi r. Szukam punktu B' (współrzędne to nadal piksele), który leży możliwie blisko prostej AB, takiego że odległość między A i B` wynosi R > r.

0

Skoro prosta to nie ma początku ani końca, wiec możesz umieścić go na tej prostej, ale za punktem B. No chyba że AB to jednak odcinek, wtedy dałbym go pixela obok B (wtedy będzie trójkąt prostokątny ABB'. ponieważ AB' będzie jego przeciwprostokątną, będzie dłuższa od AB, a jednocześnie tak blisko niej jak się da przy spełnieniu warunków zadania).

0

Albo ja nie rozumiem Twojej odpowiedzi, albo Ty nie zrozumiałeś pytania. Na monitorze okrąg nie jest okręgiem, prosta nie jest prostą. Jak wybrać (nie stosując brute force) piksel w pobliżu przecięcia prostej AB z okręgiem by reprezentował punkt leżący najbliżej matematycznego punktu przecięcia wspomnianej prostej z okręgiem.
Dodatkowo - nie pisałem o tym w pierwszym poście - piksel winien reprezentować punkt leżący na zewnątrz okręgu, odległość ma być >= R
screenshot-20170728163133.png

0
bogdans napisał(a):

Dane są punkty A i B - współrzędne są całkowite (piksele). Odległość między punktami wynosi r. Szukam punktu B' (współrzędne to nadal piksele), który leży możliwie blisko prostej AB, takiego że odległość między A i B` wynosi R > r.

Jakieś bzdury opowiadasz...
niby gdzie otrzymasz całkowite: a^2 + b^2 = r^2?

W trójkątach Pitagorasa...

W grafice nikt się nie bawi w takie cuda - tam normalnie to wyliczasz, zaokrąglając wynik do całkowitych.

0

W pierwszym poście nic o żadnym okręgu nie było, w obecnej sytuacji dałbym go na prostej przechodzącej przez A i B w odległości R czyli promieniowi okręgu. O ile A jest jego środkiem. Nic nie napisałeś o tym czym tenże okrąg jest, i na jakiej zasadzie został narysowany. Czym by ten okrąg nie był, szukaj punktu przecięcia prostej z okręgiem najbliższego b.

0

może o coś takiego chodziło?
https://plnkr.co/edit/d5YNVxwltguEV0OfDk2e?p=preview

0

Tak to widze(jak w zalaczniku), ta liczba bedzie wymierna, bo jest pierwiastek z trzech; trzeba wziac cos z minimalnie wieksza wspolrzedna y. Umiescilem poczatek kartezjanskiego ukladu w punkcie A.

0

@wil napisał;

W grafice nikt się nie bawi w takie cuda - tam normalnie to wyliczasz, zaokrąglając wynik do całkowitych.<
Jesteś pewien? Dla mnie naturalne jest wymaganie, by przedłużony odcinek AB' wyrysowany na ekranie poleceniem typu drawLine zawierał punkt B. Zaokrąglanie tego nie gwarantuje.

0

Możesz potwierdzić czy chodziło Ci o coś takiego jak w linku https://plnkr.co/edit/d5YNVxwltguEV0OfDk2e?p=preview?
screenshot-20170803082849.png

0

Na rysunku nie ma oznaczeń, nie jestem więc pewien co on przedstawia. Ale na 95% chodzi o coś innego.

0

screenshot-20170803090744.png
Niebieski to A,
Zielony to B,
Czerwony to B`

0

O coś takiego chodzi, zmylił mnie ten długi promień - dla mnie świat na zewnątrz okręgu o promieniu R nie istnieje :).

0

Na https://plnkr.co/edit/d5YNVxwltguEV0OfDk2e?p=preview są do tego wzory / kod w js

1 użytkowników online, w tym zalogowanych: 0, gości: 1