Witam wszystkich...
Robię program w którym należy podać długości 3 boków, a program ma narysować z nich trójkącik...
I wygląda to tak że na pierwszej formie mam podawanie długości boków, i sortowanie ich za razem. Tak więc zawsze są one malejące... a >= b >= c
Przechodząc do formy 2 i klikając w button rysuj program zamienia długości boków na piksele.
Największy bok ma 700 pikseli. A kolejne ze wzorów:
a1:=700;
b1:=(b*a1)/a;
c1:=(c*b1)/b;
{a,b,c - długości boków podanych na pierwszej formie}
Wszystko mi wygląda na ładnie i sprawnie, ale kiedy daję boki 3,4,5 powinien narysować mniej więcej trójkąt prostokątny (mniej więcej ponieważ button zawiera instrukcje zaokrąglające), Ale nie rysuje... doszedłem do tego że źle może mi obliczać wysokość (h - w programie). A jeżeli nie to możliwe że jeszcze pole tego trójkąta może być źle obliczane, a co za tym idzie to h również...
Oto kod przycisku:
a1:=700;
b1:=(b*a1)/a;
c1:=(c*b1)/b;
a:= round(a1);
b:= round(b1);
c:= round(c1);
ax:=50;
ay:=50;
polobw1 := (a+b+c)/2;
polobw := round(polobw1);
pole := polobw*(polobw-a)*(polobw-b)*(polobw-c);
polobw1 := sqrt(pole);
pole := round(polobw1);
h1:= pole/(350);
h:= round(h1);
x1:= sqr(c)-sqr(h);
x1:= sqrt(x1);
x:= round(x1);
bx:=ax + a;
by:=ay;
cx := ax+x ;
cy := ay + h;
Label1.caption := inttostr(a);
Label2.caption := inttostr(b);
Label3.caption := inttostr(c);
Canvas.Brush.Color := clTeal;
Canvas.Polygon([Point(ax, ay), Point(bx, by),
Point(cx, cy)]);
Proszę jak możecie to pomóżcie!!
Z gróy thx!
Edit:
Jeżeli by kogoś to zainteresowało tutaj Możecie zassać moje wypociny ;)