Bonjour a tous. Me voila encore avec cette methode en c# que je retranscris en Java. Je pense voir le bout du tunnel mais il me reste encore 2-3 erreurs a commencé par celles-ci:
me sort comme erreur pour la ligne1:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 double accelerationVector = -Vecteur2.Normalize(velocityVector) * frictionAcceleration + new Vecteur2(0, -gravity); positionVector += velocityVector * timeStep + 1 / 2 * accelerationVector * timeStep * timeStep;
Code console : Sélectionner tout - Visualiser dans une fenêtre à part Error:(69, 41) error: bad operand type Vecteur2 for unary operator '---'
et pour la ligne 2:
Code console : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Error:(73, 46) error: bad operand types for binary operator '*' first type: Vecteur2 second type: double
plutôt logique sauf que ces lignes marchent en c#:
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 var accelerationVector = -Vector2.Normalize(velocityVector) * frictionAcceleration + new Vector2(0, -gravity); positionVector += velocityVector * timeStep + 1 / 2 * accelerationVector * timeStep * timeStep;
Voici la classe Vecteur2 qui est une classe que j'ai écris en Java en prenant ce dont j'avais besoin de la methode Vector2 qui fait partie du langage c#:
et enfin au cas ou je vous laisse le code de la méthode Vector2 c# : http://www.technologicalutopia.com/s...vector2.cs.htm
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 import java.lang.Math; public class Vecteur2 { double x; double y; private static Vecteur2 zeroVector = new Vecteur2(0f, 0f); public Vecteur2(double dX, double dY) { x = dX; y = dY; } public double LengthSquared() { return Math.pow(x, 2) + Math.pow(y, 2); } public static Vecteur2 TransformNormal(Vecteur2 normal, Matrix3x2 matrix) { normal.x = (normal.x * matrix.m11) + (normal.y * matrix.m21); normal.y = (normal.x * matrix.m12) + (normal.y * matrix.m22); return normal; } public static Vecteur2 Normalize(Vecteur2 value) { double val = 1.0f / (double) Math.sqrt((value.x * value.x) + (value.y * value.y)); value.x *= val; value.y *= val; return value; } public static Vecteur2 Zero() { return zeroVector; } public double Length() { return (double)Math.sqrt((x * x) + (y * y)); } }
Je me demande comment ça se fait qu'en c# on puisse utiliser des operateurs sur l'objet Vector2 comme ça et surtout comment faire la même chose en Java ? Et si ce n'est pas possible et qu'il faut
que je crée des methodes du style "multiplie(double)" dans ma classe Vecteur2: Comment savoir avec quoi je remplis ces methodes ?
Partager