2 Stimmen

Erkennen der Art des Graphen anhand einer gegebenen Menge von Punkten

Ich versuche, ein Programm zu entwerfen, das Graphen mit einer Reihe von Punkten (x, y) zeichnet, und es sollte auch die Kurve (gerade Linie, Hyperbel, Parabel) erkennen, nur mit Hilfe der Punkte. Gibt es einen Algorithmus, der dies ermöglicht?

1voto

Svisstack Punkte 15446

Sie können es tun, indem Sie die Funktion extrem, aber ist vielleicht nicht die optimale Lösung für dieses Problem (ich meine ein Problem in Parabelfunktion wie das y = sqrt(x*x-1) ). Für eine Gerade kann man y = ax + b durch die 2 zufälligen Punkte berechnen und prüfen, welche anderen Punkte dieser Bedingung entsprechen, wenn ja. Dies ist eine Gerade, wenn nicht, kann man 2 andere Ausnahmen oder nichts davon prüfen. Vielleicht hat jemand anderes eine Lösung für die nächsten 2 Fälle?

1voto

Rawling Punkte 47404

Sie benötigen fünf Punkte, wenn die Kurve eine Gerade oder eine Kegelform (Hyperbel, Parabel, Ellipse, Kreis) sein könnte.

Wenn die fünf Punkte kollinear sind, handelt es sich um eine gerade Linie. (Oder eine degenerierte Kegelform? Aber wenn man gerade Linien erwartet, sollte dies auf eine gerade Linie hindeuten.)

Wenn vier Punkte kollinear sind, hat man eine entartete Kegelform, die durch die Linie durch die vier kollinearen Punkte und eine beliebige Linie durch den fünften Punkt, die nicht parallel zur ersten Linie ist, gegeben ist.

Wenn drei Punkte kollinear sind, hat man eine entartete Kegelform, die durch die Linie durch die drei kollinearen Punkte und die Linie durch die beiden anderen Punkte gegeben ist. (Es sei denn, diese beiden Geraden sind parallel, dann handelt es sich nicht um eine Kegelform).

Wenn keine drei Punkte kollinear sind, hat man eine eindeutige, nicht entartete Kegelform.

Um die Gleichung für diese Kegelform zu finden (Ax^2 + Bxy + Cy^2 + Dx + Ey + F = 0), sehen Sie sich Folgendes an diese Seite und zwar die Formel in der DETAILS Abschnitt. Setzen Sie Ihre fünf x- und y-Werte ein, berechnen Sie die Determinante der Matrix in Bezug auf x und y, und Sie erhalten die Formel für Ihre Kegelform. Siehe dann aquí um anhand der Werte von A, B und C herauszufinden, um welche Art von Kegel es sich handelt.

Wenn Sie mehr als 5 Punkte haben, wählen Sie fünf Punkte aus (vorzugsweise so, dass keine drei kollinear sind), finden Sie die Kegelform und prüfen Sie dann, ob die übrigen Punkte auf der Kegelform liegen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X