Autor Beitrag
WormHole
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 145



BeitragVerfasst: Mo 06.06.05 21:20 
Hallo, da bin ich wieder. Diesmal soll es ein Trapez werden! Ich komme einfach nicht mehr weiter...

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
procedure TForm5.Button1Click(Sender: TObject);   

var   
a, b, c, d, cm, Winkelbeta, Winkelalpha: extended;   
P: array [1..4of TPoint;   

begin   
paintbox1.canvas.FillRect(clientrect);   
cm := 72 / 2.54;   
a := StrtoInt(Edit1.Text);   
b := StrtoInt(Edit2.Text);   
c := StrtoInt(Edit3.Text);   
d := StrtoInt(Edit4.Text);   
Winkelalpha := StrtoInt(Edit5.Text);   
Winkelbeta := StrtoInt(Edit6.Text);   

P[1].X := 100;   
P[1].Y := 100;   

P[2].X := Round(100+a*cm);   
P[2].Y := 100;   

P[3].X := Round(100+b*cm*cos(Winkelbeta*pi/180));   
P[3].Y := Round(100+b*cm*sin(Winkelbeta*pi/180));   

P[4].X := Round(100+d*cm*cos(Winkelalpha*pi/180));   
P[4].Y := Round(100+d*cm*sin(Winkelalpha*pi/180));   

Paintbox1.Canvas.Polygon([P[1],P[2],P[4],P[3]]);


Das hier ist mein Ansatz! Das passt aber total nicht. Bitte helft mir, danke!

greetz WormHole

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Mo 06.06.05 21:32 
Mich nimmt es mal wunder, was du genau machen willst. Nur schon bei der Definition von kongruenten Dreiecken gibt es viele verschiedene Möglichkeiten:
z.B. 3 Seiten, oder zwei Seiten und einen Winkel, eine Seite und zwei Winkel, usw..
Beim Trapez ist es noch komplizierter: Dort kannst du z.B. alle vier Seiten plus eine Diagonale angeben, aber auch dann ist die Sache noch nicht eindeutig. Ein Trapez ist nichts anderes als zwei zusammengeklebte Dreiecke.

Es gibt nicht einfach eine Art, um ein Trapez zu definieren. Deswegen frag ich dich, wofür du es brauchst, und welche Werte vorgegeben sind.
WormHole Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 145



BeitragVerfasst: Mo 06.06.05 21:38 
Also, man hat die Vier Seiten und einen Winkel!

a= 3
b= 4
c= 2
d= 3

alpha= 50°

Aus dem Code, kann man dann natürlich den Beta Winkel löschen... Also war ich mit meinem "Ansatz" schon wieder total falsch ;)

Achja, ich brauche es eigentlich nirgendwo für, doch würde es meine mathelehrerin sicher freuen^^
MarkusZi
Hält's aus hier
Beiträge: 11

Win XP, Vista
D4 Prof
BeitragVerfasst: Di 07.06.05 19:50 
Also: per Definition sind bei einem Trapez ja 2 Seiten parallel. So wie ich deinen sourcecode interpretiere hast du deine Seiten beginnend mit der Basis im Uhrzeigersinn nummeriert.
Daher wären bei dir z.B. die Seiten a und c parallel und der Winkelalpha wäre zwischen a und b.... richtig?

Dann müsstest du folgendes in deinem Programm ändern

ausblenden Quelltext
1:
2:
3:
4:
5:
     P[3].X := Round(100+b*cm*cos(Winkelalpha*pi/180));
     P[3].Y := Round(100-b*cm*sin(Winkelalpha*pi/180));

     P[4].X := P[3].X + Round(c*cm);
     P[4].Y := P[3].Y;


Dabei ist zu beachten, dass eine Paintbox ihren Ursprung oben links hat, im karthesischen Koordinatensystem liegt er jedoch links unten, also P[3].Y := Round(100-b*.....

Bei mir passt das dann.