Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

1

03.01.2015, 21:55

Punkt Senkrecht zu Punkt auf Kreis

Hi,
kennt jemand die Lösung/Herangehensweise für folgende Mathematische Fragestellung?


Gegeben ist ein Kreis Mittelpunkt m, und ein Kreisradius r. Nun wird ein weiterer Punkt P1 gegeben, der im Abstand a von m entfernt ist. Zusätzlich ist der Winkel von der linken Unteren Ecke bis zum Punkt bekannt. Jetzt suche ich Punkt P2, welcher senkrecht von P1 auf der nächsten Linie liegen soll.
Der Halbkreis hat in 10 Grad Schritten jeweils eine Linie vom Mittelpunkt bis nach Außen.
Wie könnte ich jetzt P2 berechnen?

Danke schon mal für alle hilfreiche Ideen.
Gruß,
MitgliedXYZ

2

03.01.2015, 22:02

Was genau willst du denn machen?

Deine Skizze ist ein wenig verwirrend, z.B. ist r ja komplett irrelevant. Sagen wir du hast einen Kreis mit Radius a und Mittelpunkt m, dann liegt P1 genau auf diesem Kreis. Soll P2 einfach der Punkt sein, der 10Grad weiter 'rechts' auf dem Kreisbogen ist? Wenn ja, wäre die Verbindung von P1 und P2 aber nicht senkrecht zur Verbindungslinie von m und P1 (allerdings wäre der Unterschied klein).
Und was für ein Winkel ist es da, von dem du redest? Könntest du den mal genauer einzeichnen?

Es hört sich an, als ließe sich das Problem recht leicht lösen, aber nicht in der Form in der es gestellt ist.
Lieber dumm fragen, als dumm bleiben!

Tankard

Treue Seele

Beiträge: 192

Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft

  • Private Nachricht senden

3

03.01.2015, 22:14

|P2| = |P1| / cos(10°)

Anhand von m jetzt einen P2 konstruieren. Wenn m = (2 6), dann einfach P2 (angenommen |P2| ergibt 10) zu (-8 6) machen (also den Vektor mit passender Länge und Winkel 0 von m aus, Rechnung: P2 = m - (|P2| 0)) und dann um Winkel P1 + 10° drehen.

Oder verstehe ich was falsch?

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

4

03.01.2015, 22:31

Hey, danke für eure schnellen Antworten.
Stimmt, Radius des Kreises, etc. sind in dem Fall nicht wichtig. Da ich sie angegeben habe ist das etwas verwirrend, Tschuldigung.

Also damit es keine Missverständnisse gibt, ich kenne P1 und suche P2. Wenn man eine Senkrechte Linie von P1 zieht, sollte P2 auf der nächstgelegenen Grünen Linie am Schnittpunkt liegen (in der Skizze also der weiße Punkt, der mit der roten Linie verbunden ist). Nicht der Punkt, mit dem die helblaue Linie sich schneidet.



Das blöde ist, dass Vektorrechnung erst in Q12/2 in Bayern drankommt, es geht also erst nächsten Monat damit bei uns los.

@Tankard
Führt deine Antwort zu dem Punkt den ich suche, oder hatte ich es falsch beschrieben? Ich kann deiner Lösungsbeschreibung leider noch nicht ganz folgen :S

Edit:
Moment, jetzt merk ich es selbst, eigentlich lässt sich das auch ohne Vektorrechnung lösen:
X (p) = Radius - Sin(winkel(p1)+10°)*Radius
Y (p) = Cos(winkel(p1)+10°)*Radius+Radius
Ich teste das gleich mal.

Tankard

Treue Seele

Beiträge: 192

Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft

  • Private Nachricht senden

5

03.01.2015, 22:39

Ich dachte mir:

P1, P2 und m bilden ein Rechtwinkliges Dreieck. |P2| sollte dabei die Hypotenuse darstellen. Diese ergibt sich dann aus |P2| = |P1| / cos(10°). Den Winkel von P2 hast du ja auch. Das ist ja der Winkel von P1 + 10°. Ich habe dann einfach einen Vektor mit Länge |P2| und Winkel 0 konstruiert und diesen um Winkel(P2) gedreht.

Oder habe ich da einen gravierenden Denkfehler?

6

03.01.2015, 23:03

Die elegante Konstruktion der Länge hätte ich glaube ich jetzt glatt übersehen. Für die Richtung kann man das Kreuzprodukt im R2 benutzen.

sagen wir, du hast m und P1 als Koordinatenpaare x und y. Jetzt willst du die Koordinaten von P2 haben. Dann rechnest du:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//Strecke von m nach P1
mP1.x = P1.x - m.x
mP1.y = P2.y - m.y

// Länge der Strecke
L = sqrt ( mP1.x*mP1.x , mP1.y*mP1.y)

// Kreuzprodukt
P1P2.x = mP1.y
P1P2.y = - mP1.x

// Richtige Länge:
P1P2.x *= cos(10 Grad)
P1P2.y *= cos(10 Grad)

// Punkt P2 berechnen
P2.x = P1.x + P1P2.x
P2.y = P1.y + P1P2.y


Ich hoffe, das stimmt so :D
Lieber dumm fragen, als dumm bleiben!

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

7

04.01.2015, 15:36

Okay, danke für eure Hilfe. Die Lösung von Jonathan kann ich gleich so verwenden ^^

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

8

04.01.2015, 15:46

Hast du die Lösung denn auch verstanden?

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

9

04.01.2015, 21:14

Also ich meinte ich könnte es gleich so verwenden, da er es schön schrittweise beschrieben hat. Gestern Abend kam ich aber noch auf eine einfacherer Lösung, bei der ich auf die Vektorrechnung verzichten kann und trotzdem zum gesuchten Punkt komme:

Zitat

X (p) = Radius - Sin(winkel(p1)+10°)*Radius
Y (p) = Cos(winkel(p1)+10°)*Radius+Radius
Bis zur Zeile sieben ist die Lösung von Jonathan leicht zu verstehen. Das Kreuzprodukt hab ich mir einmal angesehen, ist eigentlich nicht so kompliziert. Wir nehmen das aber im Unterricht sowieso nach den Ferien noch mal genau durch, bis zum Abi kommt bei uns in Mathe nur noch neues im Bereich Geometrie. Aber ja du hast recht, man sollte keinen Code einfach so verwenden, wenn man ihn nicht ganz verstanden hat.

Werbeanzeige