| |
Fortgeschrittene ProgrammierungKoordinaten von Punkt C eines gleichseitigen Dreiecks | | | Autor: met | Datum: 20.03.18 10:53 |
| Hallo,
ich habe XY-Koordinaten von Punkt A und B eines gleichseitigen Dreiecks, sowie die Länge der Strecken AC und BC.
Kennt jemand eine Funktion, die mir die Koordinaten von C liefert?
Danke im Voraus | |
Re: Koordinaten von Punkt C eines gleichseitigen Dreiecks | | | Autor: Franki | Datum: 26.03.18 02:27 |
| Hallo,
was ist denn der Hintergrund deiner Frage?
Du hast alle Koordinaen, zusätzlich die Angabe dass es sich um en gleiche Abmessungen handelt. Gleichseitig, gleichschenklig, usw., usw. Soweit so gut, du scheinst mathenatische Grundlagen zu beherrschen. Aber warum nicht erst mal enfach auf Papier die Formeln erstellen, dann rechnen und wenn du das verstanden hat in die Programmierung umsezten.
Wie das dann geht ist eine andere Sache. Ich vermute mal, dass du mangelnde Kenntnisse in Mathe auf die Programmierung verlagern möchtest. Das wird nicht funktionieren....
Gruß
Frank | |
Easy: Senkrechte zeichnen | | | Autor: VB3-Guru | Datum: 14.07.18 17:59 |
| Ach nu sei doch nicht so streng. Immerhin hat er eine berechtigte Frage gestellt.
@met
Also die Sache ist ganz einfach:
Du legts die Gerade von A nach B zunächst mal horizontal. C liegt irgendwo darüber.
Dann zeichnest du auf der Mitte dieser Geraden eine Senkrechte. Diese teilt dein Dreieck.
Nun weißt du dass beim gleichseitigen Dreieck alle Winkel in den Ecken gleich sind. Sie sind .... - sag du es - ungefähr haargenau alle 60°.
Nun kannst du die Formel:
y = L * Sin(alpha)
'wobei L die Seitenlänge des gleichschenklichen Dreieckes ist, anwenden.
' Alpha ist 60°, also in Radian: Pi/3.VB rechnet in Radian,
' also muss der Winkel in Radian angegeben werden
Pi = 4 * Atn(1) ' liefert dir 3,14159...etc
h = L * Sin(Pi/3)
'Das ist also die Höhe der Senkrechten, die das Dreieck halbiert.
Die wird zum y-Wert von A dazuaddiert. In x-Richtung ist eh alles klar: Die x-Position ist die Position von A + L/2, also der X-Wert von A + L/2 | |
Gleichseitiges Dreieck Konstruieren | | | Autor: VB3-Guru | Datum: 15.07.18 17:52 |
| So, und weils so schön ist, hier der gesamte Code für VB3 bis VB6
' Gleichseitiges Dreieck konstruieren
' -----------------------------------
' Autor: K. Langbein, www.ActiveVB.de, Juli 2018
' Ziegruppe: Schüler ab 8.Klasse, VB-Anfänger, Lehrer ;-)
'
' Siehe auch: https://de.wikipedia.org/wiki/Gleichseitiges_Dreieck
'
' Benötigt: Form1 mit Picture1 (ca. 15 x 15 cm) und Command-Button: cmdSet
Dim Pi As Double
Private Type PointD ' Variablentyp für Punkte (x,y)
X As Double
Y As Double
End Type
Dim A As PointD
Dim B As PointD
Dim C As PointD
Dim E As PointD
Dim F As PointD
Dim L As Double ' Seitenlänge des gleichschenklichen Dreiecks
Dim Alpha As Double ' Winkel
Private Sub cmdDraw_Click()
Pi = 4 * Atn(1)
Picture1.Scale (0, 10)-(10, 0) ' Koordinatensystem von 10 x 10 Einheiten (
' z.B cm) einrichten.
' Werte setzen
A.X = 2 ' X-Wert willkürlich bei 2
A.Y = 3 ' Y-Wert für A - auch willkürlich, wie es halt passt
B.X = 8 ' X-Wert für B kann nach belieben eingestellt werden
B.Y = 3 ' Gleiche Y-Position wie bei A
' C.X und C.Y sind zunächst unbekannt.
L = (B.X - A.X) ' Seitenlänge bestimmen
E.X = A.X + (L / 2) ' Position der Halbierenden bestimmen
E.Y = A.Y
F.X = E.X ' X-Position der Halbierenden
F.Y = 9.5 ' Y-Position von F ist zunächst willkürlich
Picture1.Cls ' Tafel wischen
Picture1.ForeColor = 0 ' Schwarzmalerei
Picture1.Line (A.X, A.Y)-(B.X, B.Y) ' Grundlinie Zeichnen
Picture1.ForeColor = vbRed
Picture1.Circle (A.X, A.Y), 0.1 ' Kleine Kreise zur Markierung der Punkte
Picture1.Circle (B.X, B.Y), 0.1
Picture1.Line (E.X, E.Y)-(F.X, F.Y) ' vertikale Einzeichnen
' --------------------------------------------------------------
' Jetzt gehts los: C wird bestimmt
C.X = A.X + L / 2 ' Punkt C befindet sich an der Halbierenden des Dreiecks
Alpha = Pi / 3 ' Beim gleichseitigen Dreieck haben alle Ecken einen
' Winkel
' von 60° entspricht Pi/3
C.Y = A.Y + L * Sin(Alpha) ' Y-Position von C ist A.Y plus die errechnete
' Höhe
' weitere Seiten des Dreiecks einzeichnen.
Picture1.ForeColor = 0 ' Schwarzmalerei
Picture1.Line (A.X, A.Y)-(C.X, C.Y) ' Seite A-C Einzeichnen
Picture1.Line (B.X, B.Y)-(C.X, C.Y) ' Seite b-C Einzeichnen
Picture1.ForeColor = vbRed
Picture1.Circle (C.X, C.Y), 0.1 ' Kleine Kreise zur Markierung der Punkte
' Beschriftung
Picture1.ForeColor = 0 ' Schwarzmalerei
Picture1.CurrentX = A.X - 0.4 ' A wird etwas nach links gesetzt
Picture1.CurrentY = A.Y + 0.2 ' etwas nach oben
Picture1.FontSize = 12
Picture1.FontBold = True
Picture1.Print "A"
Picture1.CurrentX = B.X + 0.2 ' "B" wird etwas nach rechts von Punkt B _
versetzt
Picture1.CurrentY = B.Y + 0.2
Picture1.FontSize = 12
Picture1.FontBold = True
Picture1.Print "B"
Picture1.CurrentX = C.X + 0.2
Picture1.CurrentY = C.Y + 0.2
Picture1.FontSize = 12
Picture1.FontBold = True
Picture1.Print "C"
Picture1.CurrentX = A.X + 0.3
Picture1.CurrentY = A.Y + 0.45
Picture1.FontSize = 12
Picture1.FontBold = False
Picture1.Print "60" & Chr$(176) ' Beschriftung mit Winkel
Picture1.Circle (A.X, A.Y), 1, , 0, (Pi / 3) ' Kreissegment für Winkel
' einzeichnen.
' Aufgabe: Zeichne den Winkel bei B ein
' Zeichne das Kreissegment für B (Winkel bestimmen)
End Sub
Private Sub Form_Load()
Picture1.AutoRedraw = True
Picture1.BackColor = &HF0FFFF
End Sub siehe auch:
www.ActiveVb.de/members/klaus/Math/Triangle/Equilateral_Triangle/Equilateral_Triangle.zip
Mehr zum Thema Mathe-Hausaufgaben gibts bei www.ActiveVB.de - ich wünsche einen angenehmen Schlaf und gute Noten. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats sevGraph (VB/VBA)
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Weitere Infos
|