Mam nietrywialny problem.
Mam napisać program, który rysuje łamane (). Tę część programu już napisałem. Druga część opisu założeń co do programu mówi o rysowaniu łamanych "łukopodobnych" (łamana to w mojej reprezentacji lista kolejnych odcinków, wyznaczona przez ich końce). Łamana łukopodobna to taka, którą można "wykrzywić" (taki wykrzywiony odcinek).
Ściślej rzecz biorąc ma działać to tak: wyznaczam punkt \(\displaystyle{ A}\) i punkt \(\displaystyle{ B}\) na płaszczyźnie (załóżmy, że \(\displaystyle{ A \neq B}\)). Wyznaczenie punktu odbywa się przez kliknięcie na płaszczyźnie. Po wyznaczeniu obu punktów mój program rysuje między nimi linię, tak żeby powstał odcinek o końcach \(\displaystyle{ A}\) i \(\displaystyle{ B}\). Ustaliliśmy odcinek, ale w tym momencie po wciśnięciu CTRL mam mieć możliwość "odgięcia" tej prostej przez ruszaniem kursorem "na lewo" i "na prawo" od tej prostej.
Wyglądać to mam mniej więcej tak:
(3 etapy odginania odcinka coraz bardziej "w prawo"). Ten zielony odcinek to odcinek przed odgięciem. Ten czarny to odcinek po odgięciu. Kursor wyznacza poziom odgięcia.
Mój problem polega na tym jak opisać taki odcinek "łukopodony" o początku w \(\displaystyle{ A}\) i końcu \(\displaystyle{ B}\) z odchyleniem, które można by mierzyć jako odległość \(\displaystyle{ x}\) tego czerwonego punktu po prawo od odcinka \(\displaystyle{ AB}\).
Zauważcie, że jeśli oba czerwone punkty się pokryją, tzn. najedziemy kursorem na prostą wyznacozną przez odcinek \(\displaystyle{ AB}\) to krzywa łukopodobna ma być (w tym szczególnym przypadku) zwykłym odcinkiem.
Wszelkie pomysły bardzo miło widziane.
Matematyczny zapis łuków w programie komputerowym
- steal
- Użytkownik
- Posty: 1043
- Rejestracja: 7 lut 2007, o 18:35
- Płeć: Mężczyzna
- Lokalizacja: Białystok|Warszawa
- Podziękował: 6 razy
- Pomógł: 160 razy
Matematyczny zapis łuków w programie komputerowym
A jest postawiony jakiś warunek na końce tego łuku? Przykładowo, że muszą być prostopadłe do odcinka AB. Bo jeżeli nie, to napisz wzór na parabolę przechodzącą przez te trzy punkty (A, B o raz punkt wskazywany przez kursor).