ThomasM: SVG-Game: Problem mit der Kollisionserkennung/ceckIntersection()

Beitrag lesen

Hallo Fleur,

Wenn ich das richtig verstehe kann man damit feststellen, ob ein beliebiges Objekt (z.B. ein Kreis) sich mit einem beliebigen Rechteck schneidet, oder hab ich da was falsch verstanden?
Hat vielleicht irgendwer ein einfaches Beispiel zur Hand?

Wenn es überhaupt unterstützt wird, dann so:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">  
<svg xmlns="http://www.w3.org/2000/svg">  
  
  <defs>  
    <script type="text/javascript"><![CDATA[  
  
    window.onload=function()  
    {  
      // SVG-Wurzelelement-Objekt  
      var r=document.documentElement;  
  
      // Kreis-Objekt  
      var k=document.getElementById("k");  
  
      // Rechteck-Objekt = zu testender Intersection-Bereich  
      var rect=r.createSVGRect();  
      rect.x=5;  
      rect.y=5;  
      rect.width=300;  
      rect.height=200;  
  
      var check=r.checkIntersection(k,rect);  
      alert(check); // true bzw. false  
  
      // Hinweis: analoges Vorgehen mit r.checkEnclosure()  
    }  
  
    ]]></script>  
  
  </defs>  
  
  <!-- das Test-Objekt -->  
  <circle id="k" r="20" cx="100" cy="100" fill="#F00"/>  
  <!-- der Prüfbereich, nur zur Veranschaulichung -->  
  <rect x="5" y="5" width="300" height="200" fill="none" stroke="#CCC"/>  
  
</svg>

Funktioniert mit aktuellen Versionen von Opera und Safari, nicht im Firefox (obwohl dieser die Methode grundsätzlich anbietet) und auch nicht mit dem ASV-Plugin.

Grüße,
Thomas