![]() |
Winkel mit PaintBox zeichnen!
Hallo Leute,
ich habe leider folgendes Problem: Ich will mit Delphi in einer PaintBox einen Winkel zeichnen, weiß aber nicht wie!? Also ich habe die Basislinie schon (in Koordinaten) und den Winkel Alpha. Wie kann ich nun den Winkel Alpha auf diese Linie zeichnen? MfG, ScorpionKing! |
Re: Winkel mit PaintBox zeichnen!
:hi:
sinus und cosinus könnten Dir dienlich sein :) mfg Tobias |
Re: Winkel mit PaintBox zeichnen!
ich muss zugeben, dass ich nicht weiß, wie das geht! :-D
gibt es da ein tutorial? MfG, ScorpionKing! |
Re: Winkel mit PaintBox zeichnen!
|
Re: Winkel mit PaintBox zeichnen!
tja, ich bin erst in der 8. Klasse, sorry! :lol:
MfG, ScorpionKing! |
Re: Winkel mit PaintBox zeichnen!
Zitat:
Aber das ganze ist ein ziemlich komplizierter Vorgang... es hat schon seine Gründe, warum immer gesagt wird, Programmieren sei fast nur Mathe :zwinker: |
Re: Winkel mit PaintBox zeichnen!
dann dürfte es kein problem sein, denn ich habe in mathe eine 1! :wink:
|
Re: Winkel mit PaintBox zeichnen!
Einfache Übung :mrgreen:
Wenn A die Waagerechte ist, also so:
Code:
Dann gilt: X = tan (α) * A da tan (α) = X / A
***/|*\
**/*|*| */\*|**> X (zu berechnen) /α|*|*| -----*/ \___/ **A (gegeben) |
Re: Winkel mit PaintBox zeichnen!
Wenn du einen Winkel zur Horizontalen (Also mit Winkel = 0 quer über den Bildschirm ;-) ) zeichnen willst brauchst du ja die X- und die Y- Koordinate des Zielpunktes. Dazu nimmst du den Sinus bzw Cosinus
Delphi-Quellcode:
with Image1.Canvas do
begin MoveTo(100, 100); LineTo(200, 100); Ziel.X := cos(Winkel) * LaengeDerLinie; Ziel.Y := sin(Winkel) * LaengeDerLinie; LineTo(Ziel.X, Ziel.Y); end; |
Re: Winkel mit PaintBox zeichnen!
Das Problem an sich ist ziemlich einfach. Das wahre Problem ist, dass dir entsprechende Mathe-Kenntnise fählen. Du solltest die Aufgabe zuerst auf dem Papier lösen.
|
Re: Winkel mit PaintBox zeichnen!
Man könnte folgende Prozedur verwenden, um zwei Linien in einem bestimmten Winkel zueinander zu zeichnen (ungetestet):
Delphi-Quellcode:
Zu den Parametern:
uses Math;
... procedure Linien_mit_Winkel(x1, y1, x2, y2: Integer; winkel: Double); var alpha, len, si,co: Double; begin len:= sqrt(sqr(x1-x2)+sqr(y1-y2)); alpha:= winkel+ arctan((y2-y1)/(x2-x1)); SinCos(alpha, si, co); with Form1.Paintbox1.Canvas do begin MoveTo(x2, y2); LineTo(x1, y1); LineTo( Round(x1+ len*c), Round(y1+ len*s)); end;//with end;//proc x1, y1: Koordinaten des Anfangspunktes der Grundlinie x2, y2: Koordinaten des Endpunktes der Grundlinie winkel: Winkel zwischen beiden Linien (im Bogenmaß!) MfG Binärbaum |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz