![]() |
---|
Hallo liebes Mathematik Forum: Habe eine Informatik Aufgabe und komme mit meiner Logik nicht auf die Lösung: Siehe Skizze: x1/y1 , x2/y2, r (radius), a( winkel) sind gegeben! ich möchte xm und ym berechen, und zwar mittels einer allgemeinen Formel! (ich sollte diese Formel ja auch in meinem C# Programm implementieren!!) Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert): "Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen." |
Hierzu passend bei OnlineMathe: Online-Übungen (Übungsaufgaben) bei unterricht.de: |
![]() |
![]() |
Mittelpunkt Erst die Strecke AB mit dem Cosinussatz berechnen, dann AB BM = AM |
![]() |
"x1;y1 (radius), winkel) sind gegeben! " nun, das scheint mir aber etwas zuviel an "gegeben" ?! wenn die Koordinaten der beiden Kreispunkte und der Radius bekannt sind, dann ist der Mittelpunkt aus der Kreisgleichung bereits zu ermitteln. Falls ein Winkel a auch noch gegeben wäre, könnte der sogar im dümmsten Fall die Aufgabe unlösbar machen .. setze also die bekannten Koordinaten von und ein in und du hast zwei Gleichungen für die beiden gesuchten Werte und fertig |
![]() |
Okay erstmal danke für die rasche Antwort! Kann mann denn jemals zuviele Angaben haben? ;-) Ich versuchts nochmals zu erklären: Also der User kann mit meinem Programm eine Bahn erstellen! Dabei muss dieser immer abwechselnd eine Gerade und Kurve angeben! Bei der Geraden darv dieser nur einen Längenwert eingeben! Bei einer Kurve darf dieser einen Radius und einen Winkel eingeben. --> aus dieser Angabe bekomme ich die 2 Punkte! x1/y1; x2/y2 Allerdings verbinde ich diese Kurvenpunkt momentan nur mit einer Geraden! Jetzt möchte ich diese Strecke durch ein Kurve ersetzen! Hierfür brauche ich den xm,ym des Kreises! Du hast mir zwar die Antwort bereits gesendet, allerdings weis ich nicht wie ich die beiden Punkte so einsetzen muss das ich nach xm,ym auflösen kann! Kannst du mir den Rechenweg auch mitsenden, bitte! In der Skizze kannst du die Kurvenstücke sehen(rote Container) von denen ich den Kreismittelpunkt benötige! Tud Leid, mein Mathe ist naja, begrenzt! ;-) |
![]() |
Du suchst so dass und . Du kannst auch ausnutzen, dass auf der Mittelsenkrechten liegt (das ergäbe sich auch durch Subtrahieren der beiden quadratischen Gleichungen), also mit . Mnan kann durch Einsetzen in eine der Kreisgleichungen bestimmen: Das Vorzeichen von entscheidet, ob es sich um eine Links- oder Rechtskurve handelt. - Allerdings vermute ich, dass du das im Rahmen der tatsächlichen Aufgabenstellung viel einfacher ausrechnen kannst. In der Tat würde mich glatt interessieren, wie du aus den Eingaben den Kurvenendpunkt berechnest, *ohne* erst den Kreismittelpunkt zu finden. |
![]() |
He danke für die antwort! Hier ist die Berechnung der ersten Beiden Koordinaten im c# projekt. public void GetNewFrameStraight(int index, FrameXYA[] frames, int origin, int length) { if (index == 0) { frames[index].XStart = 0; frames[index].YStart = 0; frames[index].AngleStart = alpha; } if (index > 0) { frames[index].XStart = frames[index - 1].XEnd; frames[index].YStart = frames[index - 1].YEnd; frames[index].AngleStart = frames[index - 1].AngleEnd; } frames[index].XEnd = frames[index].XStart + (float) Math.Cos(frames[index].AngleStart * Math.PI / 180.0) * length; frames[index].YEnd = frames[index].YStart + (float) Math.Sin(frames[index].AngleStart * Math.PI / 180.0) * length; frames[index].AngleEnd = frames[index].AngleStart; frames[index].Typ = 0; frames[index].Id = (float)index; } public void GetNewFrameCurve(int index, FrameXYA[] frames, int radius, int angle) { Vector3 v1 = new Vector3(); if (index > 0) { frames[index].XStart = frames[index - 1].XEnd; frames[index].YStart = frames[index - 1].YEnd; frames[index].AngleStart = frames[index - 1].AngleEnd; } if (angle >= 0.0) { v1.X = (float)Math.Sin(angle * Math.PI / 180.0) * radius; v1.Y = (float)-(1.0 - Math.Cos(angle * Math.PI / 180.0)) * radius; } else { v1.X = (float)-Math.Sin(angle * Math.PI / 180.0) * radius; v1.Y = (float)(1.0 - Math.Cos(angle * Math.PI / 180.0)) * radius; } frames[index].XEnd = ((frames[index].XStart + (float)(v1.X * Math.Cos(frames[index].AngleStart * Math.PI / 180.0) - v1.Y * (float)Math.Sin(frames[index].AngleStart * (float)Math.PI / 180.0)))); frames[index].YEnd = ((frames[index].YStart + (float)(v1.X * Math.Sin(frames[index].AngleStart * Math.PI / 180.0) + v1.Y * (float)Math.Cos(frames[index].AngleStart * (float)Math.PI / 180.0)))); frames[index].AngleEnd = (frames[index].AngleStart- angle); frames[index].Typ = 1; frames[index].Id = (float)index; } Hoffe du kannst damit etwas anfangen! Kannst du die Gleichung nach XM/YM auflösen? Lg |