C# i Łuki, Krzywe

0

Witam,
Problem jest następujący
Mam do narysowania Łuk Między Dwoma punktami A i B. Trzecim punktem (określającym zarazem wysokość łuku) jest jakiś punkt(C) leżący na symetralnej odcinka(AB) odległy o H od tegoż odcinka.

Jak posiadając takie dane dostosować f-kcje Graphics.DrawArc do rysowania Łuku... bo wydaje mi się że ona wygryza z elipsy odpowiedni fragment łuku ... ale niestety po kątach :/

Co więc powinienem policzyć... -_-'' ze względów estetycznych i czasowych wolałbym skorzystać z funkcji
Graphics C# Ostatecznie/Ewentualnie jakoś inaczej rozwiązać problem?

0

Co rozumiesz pod pojęciem "wysokość" łuku ? Jaki ma on mieć kształt ?

0

Do takich rzeczy to lepiej samemu rysować sobie używając funkcji matematycznych i np. operacji DrawLine.

Kiedy robiłem program do rysowania wykresów 3D to elipsa sprawiała jakieś problemy. Z tego co pamiętam nie była zbyt dokładna.

0

Chcesz użyć funkcji Graphics.DrawArc, ta funkcja rysuje łuk elipsy. Ale trzy punkty nie wyznaczają elipsy. Przez punkty A,B,C przechodzi wiele elips, musisz sprecyzować którą z nich chcesz narysować.

0

Ja bym zaczął od znalezienia kartki i długopisa - obowiązkowy zestaw programisty. Pierwsze pytanie czy chodzi Ci o łuk kołowy ? bo jeśli o eliptyczny, jak już ktoś napisał zbyt mało danych, mój wywód będzie dotyczył kołowego.

Ja bym zrobił tak, najpierw bym pogooglował żeby nie wyważać otwartych drzwi.
Potem zaczął bym od wzoru na strzałkę, i przekształcił go we wzór na promień (mam nadzieje że się da). Mając promień, odkładasz go wzdłuż symetralnej => masz punkt środka. Mając promień masz też nasz kwadrat. Pozostaje obliczyć kąty między osią x a odcinkami łączącymi środek z końcami A i B.

Aha, jeśli chodzi o dużą precyzje i powiększenia to lepiej użyć PolyBezier czy jakiegoś odpowiednika.

0

Tak można gdybać w nieskończoność. Przy łuku kołowym trzeci punkt może oznaczać też punkt przecięcia stycznych do łuku (stycznych przy końcach). Autor po prostu chce narysować łuk, tylko myślał pewnie że każdy łuk wyznaczają 3 punkty, a tak nie jest.

0
adf88 napisał(a)

Tak można gdybać w nieskończoność. Przy łuku kołowym trzeci punkt może oznaczać też punkt przecięcia stycznych do łuku (stycznych przy końcach). Autor po prostu chce narysować łuk, tylko myślał pewnie że każdy łuk wyznaczają 3 punkty, a tak nie jest.

IMHO temat jest postawiony w miarę jasno. Trzeci punkt leży na symetralnej AB. Więc jakby odcinek AB był poziomy, to pasowało by to do pojęcia "wysokość" łuku (jak w architekturze).

Kurcze mam dzisiaj słaby dzień, ale pomijając wspóliniowe punkty oraz punkty pokrywające się, to przecież łuk kołowy jest wyznaczany przez 3 punkty ? Zresztą z tego co pamiętam w rozmaitych CAD'ach jedna z metod prowadzania łuków kołowy jest właśnie poprzez definicję 3 punktów.

Pozdrawiam

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