Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Kreismittelpunkt mittels Kreissegment berechnen

Kreismittelpunkt mittels Kreissegment berechnen

Schüler Technische u. gewerbliche mittlere u. höhere Schulen, 11. Klassenstufe

Tags: Kreismittelpunkt, Kreissegment, Punkt

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
carlosmathe

carlosmathe aktiv_icon

21:55 Uhr, 01.02.2012

Antworten
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!!)



kreis

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:
 
Online-Nachhilfe in Mathematik
Antwort
Eva88

Eva88 aktiv_icon

22:56 Uhr, 01.02.2012

Antworten
Mittelpunkt =x|y=M

x2|y2=A

x1|y1=B

Erst die Strecke AB mit dem Cosinussatz berechnen, dann

AB + BM = AM
Antwort
rundblick

rundblick aktiv_icon

00:18 Uhr, 02.02.2012

Antworten

"x1;y1 ,x2;y2,r (radius), a( winkel) sind gegeben! "



nun, das scheint mir aber etwas zuviel an "gegeben" ?!


wenn die Koordinaten der beiden Kreispunkte und der Radius r bekannt sind,
dann ist der Mittelpunkt M(xm;ym) 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 A(x1;y1) und B(x2;y2) ein in

(x-xm)2+(y-ym)2=r2

und du hast zwei Gleichungen für die beiden gesuchten Werte xm und ym

fertig

carlosmathe

carlosmathe aktiv_icon

08:28 Uhr, 02.02.2012

Antworten
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! ;-)

kreis_2
Antwort
hagman

hagman aktiv_icon

02:58 Uhr, 04.02.2012

Antworten
Du suchst xm,ym, so dass
(x1-xm)2+(y1-ym)2=r2 und (x2-xm)2+(y2-ym)2=r2.
Du kannst auch ausnutzen, dass M auf der Mittelsenkrechten liegt (das ergäbe sich auch durch Subtrahieren der beiden quadratischen Gleichungen), also
(xm,ym)=12(xy+x2,y1+y2)+t(y1-y2,x2-x1)
mit t.
Mnan kann t durch Einsetzen in eine der Kreisgleichungen bestimmen:
(12(x1-x2)-t(y1-y2))2+(12(y1-y2)-t(x2-x1))2=r2

(x1-x2)2+(y1-y2)24+((y1-y2)2+(x1-x2)2)t2=r2

t=±r2(x1-x2)2+(y1-y2)2-14
Das Vorzeichen von t 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.
Frage beantwortet
carlosmathe

carlosmathe aktiv_icon

09:57 Uhr, 06.02.2012

Antworten
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