Mathe-Problem: Steigung an einem Ellipse-Punkt

  • Sonstige

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Sorry, Werde es morgen abend nochmals anschauen, Leider hab ich mich schon länger nicht mehr mit den Transformationen in Excel beschäftigt, so das ich im Moment keinen Plan hab, wie ich das dort mache.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „exc-jdbi“ ()

    Hab eine Lösung gefunden mit kaum Mathematik.
    Ich hab ein Punkte-Array für Start, Ziel, Mitte, Tangente0, Tangente1.
    Und mit Matrix dehne ich die Punkte, dreh sie hin und her, damit ich immer nur senkrechte oder waagerechte Punkte eintragen muss. Am Schluss mit Matrix.Invert die ganzen Transformationen rückgängig machen, dasses wieder elliptisch ist.

    VB.NET-Quellcode

    1. Private Sub Update()
    2. Dim mtr = New Matrix
    3. Dim mtrCumul As New Matrix
    4. _Points(0) = New Point(0, 0) ' Startpunkt
    5. _Points(1) = Point ' Zielpunkt
    6. mtr.Scale(1, Size.Width / Size.Height) ' auf Kreis projezieren
    7. Transform(mtrCumul, mtr)
    8. Dim alpha = Math.Atan2(_Points(1).Y, _Points(1).X) * 180 / Math.PI 'Winkel der Sekante zur X-Achse
    9. mtr.Rotate(-alpha) ' um Startpunkt drehen, dass Zielpunkt auch auf X-Achse
    10. Transform(mtrCumul, mtr)
    11. Dim x = _Points(1).X / 2
    12. Dim ptm = New Point(x, -Math.Sqrt(Size.Width * Size.Width - x * x)) ' Mittelpunkt-Höhe mit Pythagoras
    13. Points(2) = ptm
    14. alpha = 90 + Math.Atan2(ptm.Y, ptm.X) * 180 / Math.PI 'Winkel Mitte/Startpunkt
    15. mtr.Rotate(-alpha) 'Mitte senkrecht über Startpunkt drehen
    16. Transform(mtrCumul, mtr)
    17. _Points(3) = New Point(-150, 0) ' TangentenPunkt0 auf der X-Achse eintragen
    18. mtr.RotateAt(2 * alpha, _Points(2).X, _Points(2).Y) 'um Mittelpunkt drehen, dass Mitte über Zielpunkt steht
    19. Transform(mtrCumul, mtr)
    20. _Points(4) = New Point(150, 0) ' ziel-TangentenPunkt eintragen
    21. mtrCumul.Invert()
    22. mtrCumul.Transform(Points) ' alle kumulierten Transformationen rückgängig machen - dasses wieder die ellipse wird
    23. End Sub
    Schlüssel war Peters Hinweis, dass eine Ellipse ein gestauchter Kreis ist. Also dass man das ganze mit Transformationen anpacken kann.


    Man sieht: Der Startpunkt (größerer kringel) ist fest, während die Ellipse mal hier mal da ist - je nachdem wo der Zielpunkt grad rumfährt.
    Ich habs mal geuppt: vb-paradise.de/index.php/Attac…37543-PathDataTester-zip/

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()