Bonjour,

Premier fichier nommé Point3D.java

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
public class Point3D
{
	private double x,y,z ;
	public Point3D (double x, double y, double z)
	{
		this.x=x;
		this.y=y;
		this.z = z;
	}
	public void deplace(double dx, double dy, double dz)
	{
		x+=dx;y+=dy;z+=dz;
	}
	public void affiche()
	{
		System.out.println("coordonnées = " +x+" "+y+" "+z);
	}
	public double GetX()
	{
	return x;
	}
	public double GetY()
	{
	return y;
	}
	public double GetZ()
	{
	return z;
	}
	public void SetX(double x)
	{ this.x = x;}
	public void SetY(double Y)
	{ this.y = y;}
	public void SetZ(double z)
	{ this.z = z;}
}
Deuxième fichier nommé Vecteur3D.java

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
public class Vecteur3D{
 
	private Point3D origine, extremite;
	private double composante_1, composante_2, composante_3;
	private static Vecteur3D sommeAB;
 
	Vecteur3D(double composante_1, double composante_2, double composante_3){
	origine.SetX(0);
	origine.SetY(0);
	origine.SetZ(0);
	this.composante_1=composante_1;
	this.composante_2=composante_2;
	this.composante_3=composante_3;
	extremite.SetX(composante_1);
	extremite.SetY(composante_2);
	extremite.SetZ(composante_3);
	}
 
 
 
	public void affiche(){
	System.out.println("Les coordonnées sont : <"+composante_1+", "+composante_2+", "+composante_3+" >");
	}
 
	public double norme(){
	return Math.sqrt((extremite.GetX()-origine.GetX())*(extremite.GetX()-origine.GetX())+(extremite.GetY()-origine.GetY())*(extremite.GetY()-origine.GetY())+(extremite.GetZ()-origine.GetZ())*(extremite.GetZ()-origine.GetZ()));
	}
 
	public static Vecteur3D sommeVecteur3D(Vecteur3D A, Vecteur3D B){
	sommeAB = new Vecteur3D(A.GetComposante_1()+B.GetComposante_1(), A.GetComposante_2()+B.GetComposante_2(), A.GetComposante_3()+B.GetComposante_3() );
	return sommeAB;
	}
 
	public double produitScalaire(Point3D origine1, Point3D extremite1, Point3D origine2, Point3D extremite2){
	double produit;
	produit = ((extremite1.GetX()-origine1.GetX())*(extremite2.GetX()-origine2.GetX())+(extremite1.GetY()-origine1.GetY())*(extremite2.GetY()-origine2.GetY())+(extremite1.GetZ()-origine1.GetZ())*(extremite2.GetZ()-origine2.GetZ()));
	return produit;}
 
	public void SetOrigine(Point3D origine ){
	this.origine = origine;}
 
	public void SetExtremite(Point3D extremite){
	this.extremite = extremite;}
 
	public Point3D GetOrigine(){
	return origine;}
 
	public Point3D GetExtremite(){
	return extremite;}
 
	public void SetComposante_1(double composante_1){
	this.composante_1 = composante_1;}
 
	public void SetComposante_2(double composante_2){
	this.composante_2 = composante_2;}
 
	public void SetComposante_3(double composante_3){
	this.composante_3 = composante_3;}
 
	public double GetComposante_1(){
	return composante_1;}
 
	public double GetComposante_2(){
	return composante_2;}
 
	public double GetComposante_3(){
	return composante_3;}
 
 
}
Troisième fichier nommé Test2.java

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Test2{

	public static void main(String [] args){
	Vecteur3D A, B;
	A = new Vecteur3D(2.0, 3.0, 4.0);
	B = new Vecteur3D(5.0, 6.0, 7.0);
	A.affiche();
	B.affiche();
	System.out.println("Produit Scalaire = "+produitScalaire(A.GetOrigine(), A.GetExtremite(), B.GetOrigine(), B.GetExtremite()));
	System.out.println("Norme de A = "+A.norme());
	System.out.println("Norme de B = "+B.norme());

	}
}
Une erreur s'affiche au niveau de la ligne en rouge dans le dernier fichier.
Si je la retire, j'ai une erreur :
Exception thread main java.lang.NullPointerException
at Vecteur3D.<init><Vecteur3D.java : 8>
at Test2.main<Test2.java5>

Impossible de régler le problème. J'ai essayé d'enlever toutes les lignes de mon fichier Test2.java et l'erreur viendrait en fait de quand je déclare mes deux vecteurs A et B dans main. Pourtant mon constructeur a l'air juste dans Vecteur3D.

Merci pour votre aide