Koordinaten punkt einer Fläche in anderes Verhältnis umwandeln

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Koordinaten punkt einer Fläche in anderes Verhältnis umwandeln

    hey Leute habe eine Problem!

    Also ich habe eine Fläche (DayZ Map) 15350 X 15350
    So Jetzt will ich mir auf einer Picturebox (Variable Größe) die Punkte X/Y anzeigen lassen,
    Die X/Y werte gehören allerdings zu der großen Fläche wie wandele ich die Werte um?
    Und wie Kann ich dann Diese Koordinaten auf eine Picturebox (Roter Punkt) in der Picturebox (MAP) übertragen?
    Das Ding heißt Drei-Satz.
    Letzten Endes musst Du nur an jeden x|y-Wert das Verhältnis neue Höhe|Breite / alte Höhe|Breite dranmultiplizieren.
    Teste mit dem Faktor 2 (wenn Du es falsch rum machst, müsste es (1/2) sein.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Teste mit dem Faktor 2 (wenn Du es falsch rum machst, müsste es (1/2) sein.
    Male es auf ein Papier.
    Wenn Du von "alt" nach "neu" gehst, musst Du etwa einen Faktor 1,5 dran hängen:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Jop habe ich gemerkt :D

    VB.NET-Quellcode

    1. Dim xdz As String = TextBox4.Text
    2. Dim xpicbox As String = CStr(Form1.PictureBox1.Size.Width)
    3. Dim xpic As String = CStr(CDbl(xpicbox) * CDbl(xdz) / 15350)
    4. Dim ydz As String = TextBox3.Text
    5. Dim ypicbox As String = CStr(Form1.PictureBox1.Size.Height)
    6. Dim ypic As String = CStr(CDbl(ypicbox) * CDbl(ydz) / 15350)




    Hm Habe jetzt noch ein Problem:

    Wie kann ich das bild auf der Picturebox anzeigen lassen?
    Also zz habe ich eine eigene Form für das Bild

    VB.NET-Quellcode

    1. Form1.PictureBox2.Location = New Point(CInt(xpic), CInt(CDbl(ypicbox) - CInt(ypic)))

    Das passt auch FAST aber halt nicht ganz
    Problem ist, dass ich dort die Position der Form nehme ... wie kann ich eine Picturebox auf die Position in einer Picturebox verschieben ?
    Warum konvertierst du erst in String und dann wieder in Double? So wäre der Code sauberer:

    VB.NET-Quellcode

    1. Dim xdz As Integer = Integer.Parse(TextBox4.Text)
    2. Dim xpic As String = (Form1.PictureBox1.Width * xdz / 15350).ToString
    3. Dim ydz As Integer = Integer.Parse(TextBox3.Text)
    4. Dim ypic As String = (Form1.PictureBox1.Height * ydz / 15350).ToString

    oliver14800 schrieb:

    VB.NET-Quellcode

    1. Dim xpicbox As String = CStr(Form1.PictureBox1.Size.Width)
    2. Dim xpic As String = CStr(CDbl(xpicbox) * CDbl(xdz) / 15350)
    1. Was sollen die Werte in String-Variablen? ==> Proportionalitätsfaktoren sind Double.
    2. Form1.XYZ gugst Du hier.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!