Okrąg + Prosta

Raf@l

Okrąg + Prosta

Post autor: Raf@l »

Cze, Pisze program w Delphi ktory ma za zadanie zbudowac 5kat foremny,wykorzystuje napisane przez siebie narzedzia- prosta,rownolegla, prostopadla, dwusieczna kata, i punkt przecięcia dwóch prostych. Nie umiem napisac wzoru kt wyliczy punkt przecięcia prostej z okręgiem
Dlatego posługuje się konstrukcja "zaginania kartki" znalezioną tu . Mam problem przy jednym z punktow i przedstawiam screena mojego programu:

Odcinek BL ma byc rowny AB. Obliczylem wysokosc punktu przeciecia- pitagoras i narysowalem okrac ale jak obliczyc współrzędną x tego punktu?
Bardzo ale to bardzo dziękuję za najdrobniejszą pomoc, może ktoś ma jakies konstrukcje 5kata bez cyrkla lub umie mi pomoc ze wzorem.
W_Zygmunt
Użytkownik
Użytkownik
Posty: 545
Rejestracja: 1 wrz 2004, o 22:47
Płeć: Mężczyzna
Lokalizacja: Kraków
Pomógł: 53 razy

Okrąg + Prosta

Post autor: W_Zygmunt »

Na stronie
jest plik "GEOM2N.PAS". W nim są procedury napisane w Pascalu (które teraz wykorzystuję w Delphi). Między innymi jest "procedure przeciecie_okregu_z_prosta_2p(ok:okrag;P1,P2:punkt2;var PP1,PP2:punkt2);" w którym prosta jest reprezentowana przez 2punkty.
W programie "niezb.exe" na tej samej stronie jest zakłdka "Rozstaw otwor." Wystarczy wpisać "ilość otworów" =5.
Powodzenia.
MorF
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 21 lis 2004, o 13:19
Płeć: Mężczyzna
Lokalizacja: Warszawa

Okrąg + Prosta

Post autor: MorF »

Dziękuję Panu Serdecznie, wszystko działa jak należy, choć cięźkie to jest dość do wyliczenia, probowalem sam ale nie wpadłem.
Jeszcze raz dziękuję
W_Zygmunt
Użytkownik
Użytkownik
Posty: 545
Rejestracja: 1 wrz 2004, o 22:47
Płeć: Mężczyzna
Lokalizacja: Kraków
Pomógł: 53 razy

Okrąg + Prosta

Post autor: W_Zygmunt »

Ja bym zapropnował takie rozwiązani w oparciu o bibliotekę procedur "GEOM2N.PAS".
Dane są dwa punkty A i B. n - ilość wierzchołków wielokąta.
alfa = 2*pi/n
Promień okręgu opisanego R = 0.5*odleglosc2punktow(A,B)/sin(alfa/2);
C1,C2 : okrąg
C1.P:=A
C1.R:=R
C2.P:=B
C2.R:=R
okregi2(C1,C2,M,N);
Należy wybrać właściwy punkt.
S=M lub S=N
for j =1 to n-2 do
obrot_punktu_wzgledem_p(A,S,j*alfa,Pj);
Oczywiście trzeba zadeklarować wcześniej odpowiednie zmienne.
ODPOWIEDZ