Zitat von
Der_Unwissende:
Auch wenn Du von den Punkten A,B,C und den gerade a, b und c sprichst, so ist es besser wenn Du nochmal sagst, welche Gerade zwischen welchen Punkten verläuft (nur um Missverständnissen vorzubeugen!).
Dein Problem besteht ja erstmal aus zwei Teilproblemen, Du benötigst die Rechnung und dann eben das Zeichnen. Mir ist noch nicht ganz klar, ob Du die Rechnung schon vollständig hast oder eben nicht? Könntest Du dazu noch was sagen?
Dann leg ich es mal so fest: Seite a=Strecke(BC), Seite b=Strecke(AC) und Seite c=Strecke(AB).
Die Rechnung ist soweit vollständig. also darüber brauchen wir nicht mehr reden. Ich finde halt nur keine richtig Ansätze für das zeichnen und das Prüfen, ob das Dreieck konstruierbar ist oder nicht.
Beim Prüfen finde ich eigentlich gar keinen Ansatz.
Das zeichnen wollte ich ungefähr so durchführen:
Code:
procedure TForm1.Button6Click(Sender: TObject);
var hc, p, SeiteA: Integer;
A, B, C: TPoint;
begin
with PaintBox1 do begin
// Bestimmen der Koordinaten für die Punkte A, B und C
A.X:= 20;
A.Y:= height-20;
B.X:= width-20;
B.Y:= A.y;
SeiteA:= trunc(sqrt(sqr(B.X-C.X)+sqr(C.Y-B.Y)));
SeiteB:= trunc(sqrt(sqr(C.X-A.X)+sqr(C.Y-A.Y)));
SeiteC:= trunc(sqrt(sqr(B.X-A.X)+sqr(B.Y-A.Y)));
Betta:= ArcCos((Sqr(SeiteA)-Sqr(SeiteB)+Sqr(SeiteC))/(2*SeiteA*SeiteC));
hc:= SeiteA*trunc(sin(Betta));
p:= trunc(sqrt(sqr(SeiteB)-sqr(hc)));
C.X:= A.X + p;
C.Y:= A.Y - hc;
// Zeichnen durch Verbinden der Eckpunkte
canvas.moveto(A.X, A.Y);
canvas.lineto(B.X, B.Y);
canvas.lineto(C.X, C.Y);
canvas.lineto(A.X, A.Y);
end;
end;
Aber irgendwie schein da ein logischer Fehler drin zu sein
Also ich hab halt keinen Plan, wie ich den Punkt c erstellen soll.