Je veux remplir un triangle dans Android en utilisant la classe Canvas. La façon dont je suis en train de travailler fonctionne actuellement mais elle est très décalée. Je voulais savoir si quelqu'un avait une façon plus rapide de le faire que moi. Merci!Dessiner un triangle tournant
Mon code:
public void rotate(float angle){
if(neighbour == null)
return;
path.reset();
Point origin = rotatePoint(neighbour.getX() + 64, neighbour.getY() + 128 + 16, neighbour.getX() + 64, neighbour.getY() + 64, angle);
Point a = rotatePoint(neighbour.getX() + 64, neighbour.getY() + 128 + neighbour.getWidth() + neighbour.getHeight(), neighbour.getX() + 64, neighbour.getY() + 64, angle - 15);
Point b = rotatePoint(neighbour.getX() + 64, neighbour.getY() + 128 + neighbour.getWidth() + neighbour.getHeight(), neighbour.getX() + 64, neighbour.getY() + 64, angle + 15);
path.moveTo(origin.x, origin.y);
path.lineTo(a.x, a.y);
path.lineTo(b.x, b.y);
}
voisin est juste une classe qui détient des valeurs x
et y
.
méthode du point Rotation:
private Point rotatePoint(float x, float y, float px, float py, float angle){
float s = (float)Math.sin(Math.toRadians(angle));
float c = (float)Math.cos(Math.toRadians(angle));
x -= px;
y -= py;
float xnew = x * c - y * s;
float ynew = x * s + y * c;
x = xnew + px;
y = ynew + py;
return new Point((int)x, (int)y);
}
Ce triangle est tourné assez souvent donc je besoin d'un moyen efficace de le faire.
Merci, complètement oublié cette fonction! Je vais essayer quand j'ai le temps. – TameHog