Träfftestning

I datorgrafikprogrammering är träfftestning ( träffdetektion , plockning eller plockkorrelation ) processen för att avgöra om en användarkontrollerad markör (som en muspekare eller pekpunkt på ett pekskärmsgränssnitt) skär en given grafik objekt (som en form, linje eller kurva) ritat på skärmen. Träfftestning kan utföras på rörelse eller aktivering av en mus eller annan pekanordning.

Träfftestning används av GUI- miljöer för att svara på användaråtgärder, som att välja ett menyalternativ eller ett mål i ett spel baserat på dess visuella plats. I webbprogrammeringsspråk som HTML , SVG och CSS associeras detta med konceptet med pekarhändelser (t.ex. användarinitierad markörrörelse eller objektval).

Kollisionsdetektering är ett relaterat koncept för att upptäcka skärningspunkter mellan två eller flera olika grafiska objekt, snarare än korsning av en markör med ett eller flera grafiska objekt.

Algoritm

Det finns många olika algoritmer som kan användas för att utföra träfftestning, med olika prestanda eller exakta resultat. En vanlig träfftestalgoritm presenteras i pseudokoden nedan:

      

                           
 funktion  HitTest  (  Rektangel  r1  ,  Rektangel  r2  )  returnerar  boolean  {  return  ((  r1  .  X  +  r1  .  Width  >=  r2  .  X  )  och  (  r1  .  X  <=  r2  .  X  +  r2  .  Width  )  och  (  r1  .  Y  +  r1  höjd  >=  r2  .  Y  )  och  (  rl  .  Y  <=  r2  .  Y  +  r2  .  Höjd  ))  ;  } 

I Python :

      
    
     
            
             
             
             
     def  hit_test  (  r1  :  Rectangle  ,  r2  :  Rectangle  )  ->  bool  :  """Returnera sant om det träffar annars returnerar falskt."""  return  (  (  r1  .  x  +  r1  .  width  >=  r2  .  x  )  och  (  r1  .  x  <=  r2  .  x  +  r2  .  bredd  )  och  (  r1  .  y  +  r1  .  Höjd  >=  r2  .  y  )  och  (  r1  .  y  <=  r2  .  y  +  r2  .  höjd  )  ) 

Se även

externa länkar