rania.80
Messages postés4Date d'inscriptionvendredi 3 mars 2017StatutMembreDernière intervention 5 mars 2017
-
Modifié par KX le 4/03/2017 à 00:00
rania.80
Messages postés4Date d'inscriptionvendredi 3 mars 2017StatutMembreDernière intervention 5 mars 2017
-
5 mars 2017 à 10:34
Bonjour,
je voudrais de dessiner un ligne ou bien segment "AB" mais dans les 3 axes (x.y.z)
. j'ai essayée Drawline mais cette instruction utilisée seulement pour x et y.
ça marche pas dans ce code.
aider moi s'il vous plait.
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
public class Segment
{
public Point3 A;
public Point3 B;
public Color c;
public Segment(Point3 A, Point3 B, Color c)
{
this.A = new Point3(A.x, A.y, A.z);
this.B = new Point3(B.x, B.y,B.z);
this.c = c;
}
public void SetColor(Color c)
{
this.c = c;
}
public void Render(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
g2.setColor(this.c);
g2.drawline(A.x, A.y,A.z, B.x, B.y,A.z );
}
}
rania.80
Messages postés4Date d'inscriptionvendredi 3 mars 2017StatutMembreDernière intervention 5 mars 2017
>
KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 2024 Modifié par KX le 5/03/2017 à 00:09
merci beaucoup;
est ce que tu sais comment calculer point d'intersection de deux segments dans un espace 3d
parce que dans l'espace 2d est calculer comme ça
public static Point2D.Double intersection(Point2D.Double A, Point2D.Double B,Segment segment2) {/***/
double d = (A.x-B.x)*(segment2.A.y-segment2.B.y) - (A.y-B.y)*(segment2.A.x-segment2.B.x);
if (d == 0) // Lines are parallel.
return null;
double xi = ((segment2.A.x-segment2.B.x)*(A.x*B.y-A.y*B.x)-(A.x-B.x)*(segment2.A.x*segment2.B.y-segment2.A.y*segment2.B.x))/d;
double yi = ((segment2.A.y-segment2.B.y)*(A.x*B.y-A.y*B.x)-(A.y-B.y)*(segment2.A.x*segment2.B.y-segment2.A.y*segment2.B.x))/d;
double lx1 = ((xi-A.x)) ;
double lx2 =(B.x-A.x);
double ly1 = ((yi-A.y)) ;
double ly2 =(B.y-A.y);
double h1 = lx1/lx2;
double h2 = ly1/ly2;
if((h1 >= 0 && h1 <=1 )||(h2 >= 0 && h2 <= 1)){
return new Point2D.Double(xi,yi);
}
else{
return null;
}
}
KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 2024127
>
rania.80
Messages postés4Date d'inscriptionvendredi 3 mars 2017StatutMembreDernière intervention 5 mars 2017 5 mars 2017 à 00:42
En 2D ou en 3D le problème reste à peu près le même.
Soit A(ax, ay, az), B(bx, by, bz) les points de AB
Soit C(cx, cy, cz), D(dx, dy, dz) les points de CD
L'intersection (si elle existe) vérifie l'égalité A + v*(B-A) = C + w*(D-C)
Donc finalement ça reste une équation à deux inconnues comme en 2D.
Il faut juste la vérifier sur la 3è dimension une fois v et w calculés à partir des deux première dimensions.
Remarque : ici je parle de l'intersection de deux droites, une fois le point d'intersection trouvé (s'il existe) il faut aussi vérifier qu'il appartient bien aux deux portions de droites où sont les segments.
rania.80
Messages postés4Date d'inscriptionvendredi 3 mars 2017StatutMembreDernière intervention 5 mars 2017
>
KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 2024 5 mars 2017 à 10:34
est ce que tu connais comment calculer mathématiquement et en java. parce que je suis débutant dans la programmation; et je besoin cette calcule dans un autre travail. merci infiniment.
4 mars 2017 à 10:01
mais quelle est l'instruction qui remplace "drawline" pour dessiner segment A(x.y.z) e B(x.y.z)
merci
4 mars 2017 à 11:44
Modifié par KX le 5/03/2017 à 00:09
est ce que tu sais comment calculer point d'intersection de deux segments dans un espace 3d
parce que dans l'espace 2d est calculer comme ça
5 mars 2017 à 00:42
Soit A(ax, ay, az), B(bx, by, bz) les points de AB
Soit C(cx, cy, cz), D(dx, dy, dz) les points de CD
L'intersection (si elle existe) vérifie l'égalité A + v*(B-A) = C + w*(D-C)
Donc finalement ça reste une équation à deux inconnues comme en 2D.
Il faut juste la vérifier sur la 3è dimension une fois v et w calculés à partir des deux première dimensions.
Remarque : ici je parle de l'intersection de deux droites, une fois le point d'intersection trouvé (s'il existe) il faut aussi vérifier qu'il appartient bien aux deux portions de droites où sont les segments.
5 mars 2017 à 10:34