tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
1326
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    oska oska ist offline Mitglied Bronze
    Registriert seit
    Sep 2003
    Beiträge
    34
    Hallo erstmal. Ich habe die Frage in dieses Forum gestellt, da es sich nicht um eine Sprachspezifische Frage handelt.

    Ich brauche eine Idee, wie ich die Kollision eines Balles mit einer schrägen Wand feststellen kann.
    Das ganze ist 2-Dimensional.
    Bekannt sind:
    - Position und Bewegungsvektor des Balles
    - Anfangs- und Endpunkt der Wand

    Vielen Dank schonmal im vorraus.
     
    Hi, bin

  2. #2
    Avatar von Beruga
    Beruga Beruga ist offline Mitglied
    Registriert seit
    Jun 2004
    Beiträge
    20
    hi,

    du könntest doch einen zu der Wand senkrecht stehenden Vektor bilden, von der Mitte des Balles (Länge = Radius des Balles), und schaust dann ob diese zwei sich schneiden
     

  3. #3
    oska oska ist offline Mitglied Bronze
    Registriert seit
    Sep 2003
    Beiträge
    34
    Klingt logisch. Aber wie bekomme ich diesen Vektor des Balls.
    Ein Vektor senkrecht zur Wand wär ja der Normalenvektor der Wand. Der geht aber von der Wand aus und ich weiß nicht wie ich das jetzt mit dem Ball zusammenbringen soll.
     
    Hi, bin

  4. #4
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Hi,

    wie ich es verstehe, beötigst Du quasi den Abstand eines Punktes zu einer Graden? Ist dieser Abstand kleiner als der Radius des Kreises, liegt eine Kollision vor. Ein Beispiel hierzu habe ich mal als Flash ActionScript gepostet, aber das sollte leicht in alle anderen Sprachen übertragbar sein:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    function point_to_line(x1,y1,x2,y2,x3,y3) {
        h=y2-y1; // Höhe und Breite
        b=x2-x1;
        s=h/b; // Steigung der Linie
        ax=1; // Höhe und Breite auf Einheits(Richtungsvektor) bringen
        ay=s;
        ba=Math.sqrt(Math.pow(ax,2)+Math.pow(ay,2)); // Betrag von a berechnen;
        qx=x3-x1; // Differenz von Ortsvektor (Punkt) und Startpunkt (Linie) berechnen;
        qy=y3-y1;
        vx=ay*qx-ax*qy; // Vektorprodukt von Richtungsvektor und Differenzvektor;
        vy=ax*qy-ay*qx;
        bv=Math.sqrt(Math.pow(vx,2)+Math.pow(vy,2)); // Betrag des Vektorproduktes;
        d=bv/ba; // Abstand Punkt (x3|y3) zur Linie
        return d;
    }
    x1|y1 und x2|y2 sind Start- und Endpunkt der Linie, x3|y3 die Koordinaten des Kreismittelpunktes.

    Gruß
    .
     

  5. #5
    oska oska ist offline Mitglied Bronze
    Registriert seit
    Sep 2003
    Beiträge
    34
    Super. Vielen, vielen Dank. Damit ist das Problem gelöst!
     
    Hi, bin

Ähnliche Themen

  1. VB 2008 Ball über eine Schräge rollen lassen
    Von Taquar im Forum .NET Grafik und Sound
    Antworten: 4
    Letzter Beitrag: 24.02.10, 18:47
  2. ImageReady - Schräge Slices ?
    Von therminator im Forum Photoshop
    Antworten: 1
    Letzter Beitrag: 07.01.07, 19:24
  3. Kollision zwischen ball und schräge Linie ?!
    Von NetPerformance im Forum Flash Plattform
    Antworten: 3
    Letzter Beitrag: 29.07.04, 22:43
  4. schräge kanten
    Von untread im Forum Photoshop
    Antworten: 7
    Letzter Beitrag: 23.03.02, 17:09
  5. Schräge Kanten
    Von SP33LORE im Forum Photoshop
    Antworten: 5
    Letzter Beitrag: 22.11.01, 17:28