Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2013-09-26 05:04:10 fonction vecteur

fabrice54
membre
Date d'inscription: 2012-06-07
Messages: 242

fonction vecteur



bonjour

j'aimerais savoir que renvoi la fonction
PVector v1 = new PVector (x,y);
PVector v2 = new PVector (x1,y1);
float t = PVector.angleBetween (v1, v2);

println(degrees(t)); 
car avec la machine je trouve un angle en tangente de 27.34 et la fonction me renvoi un angle de 69.27 pour les valeurs suivantes à quoi cela correspond t`'il?
float x,y,x1,y1,a,b,c;
void setup()
{
size(500,500);
x=10;
y=250;
fill(0,255,0);
rect(x,y,20,20);
x1=300;
y1=100;
fill(255,0,255);
rect(x1,y1,20,20);
bsadx-x1);
println(b);
asady-y1);
println(a);
c=sqrt((a*a)+(b*b));
println(c);

PVector v1 = new PVector (x,y);
PVector v2 = new PVector (x1,y1);
float t = PVector.angleBetween (v1, v2);

println(degrees(t)); 
}

Hors ligne

 

#2 2013-09-26 19:08:06 Re : fonction vecteur

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: fonction vecteur



Bonjour,

Un vecteur est une "flèche" allant de l'origine (0, 0) au point indiquer dans le constructeur.
Donc angleBetween est l'angle entre deux vecteurs ayant comme point commun l'origine.
Tu peux voir le résultat dans le petit bricolage ci-joint :

Code (processing) :

PVector v1, v2;
boolean selection;
PVector distance;

void setup() {
  size(400, 400);
  v1 = new PVector(300, 200);
  v2 = new PVector(300, 100);
  selection = false;
}

void draw() {
  background(255);
  fill(255);
  line(0, 0, v1.x, v1.y);
  ellipse(v1.x, v1.y, 10, 10);
  if (selection) {
    fill(255, 0, 0);
  } 
  else {
    fill(0, 255, 0);
  }
  line(0, 0, v2.x, v2.y);
  ellipse(v2.x, v2.y, 10, 10);
  arc(0, 0, 100, 100, PVector.angleBetween(new PVector(1, 0), v1), PVector.angleBetween(new PVector(1, 0), v1) +  PVector.angleBetween(v1, v2));
  fill(0);
  text(degrees(PVector.angleBetween(v1, v2)),300, 380);
}

void mousePressed() {
  PVector souris = new PVector(mouseX, mouseY);
  distance = PVector.sub(souris, v2);
  if (distance.mag() < 10) {
    selection = true;
  }
}

void mouseDragged() {
  PVector souris = new PVector(mouseX, mouseY);
  if (selection) {
    v2 = PVector.sub(souris, distance);
  }
}

void mouseReleased() {
  selection = false;
}

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2025