Produit scalaire de deux vecteurs

- - Dernière réponse : cgandco
Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Statut
Membre
Dernière intervention
22 juin 2017
- 5 juil. 2016 à 11:55
Bonjour,
j'aimerais calculer le produit scalaire de deux vecteurs dans la fonction de la classe qui a ete declare par moi. Cette fonction a un double comme parametre et nous livre la classe c a dire
public vektor bildekreuzprodukt(vektor kreuzvektor)
{
vektor v = new vektor();
v.m_x = m_x;
v.m_z = m_z;
v.m_z = m_y;


return v;
}
comment calculer le produit scalaire de ce vecteur
Sachant que m_x m_y m_z sont privee
sil vous plait es ce que vous pouvez m'aider je vous serais vraiment reconnaissante
merci d'avance
jackie
Afficher la suite 

2 réponses

Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Statut
Membre
Dernière intervention
22 juin 2017
8
0
Merci
bonjour,

J'avais envie de le faire.

X,Y,Z de ta classe readonly (on ne modifie pas un vecteur si pas d'opération dessus)

donc on initialise le vecteur a sa création (dans le constructeur).



et le produit vectoriel

    public class Vektor
    {
        private double m_x;

        public double X {
            get {
                return m_x;
            }
        }

        private double m_y;

        public double Y {
            get {
                return m_y;
            }
        }

        private double m_z;

        public double Z {
            get {
                return m_z;
            }
        }

        public Vektor(double x,double y,double z) {
            this.m_x = x;
            this.m_y = y;
            this.m_z = z;
        }

        public Vektor bildekreuzprodukt(Vektor kreuzvektor) {
            Vektor v = new Vektor(
                (this.m_y * kreuzvektor.Z) - (this.m_z * kreuzvektor.Y) ,
                (this.m_z * kreuzvektor.X) - (this.m_x * kreuzvektor.Z),
                (this.m_x * kreuzvektor.Y) - (this.m_y * kreuzvektor.X)
                );
            return v;
        } 
    }


et pour l'utiliser deux possibilités


Vektor v1 = new Vektor(5, 6, 9);
Vektor v2 = new Vektor(8, 4, 12);
Vektor produitVectorielV1V2 = v1.bildekreuzprodukt(v2);
Vektor produitVectorielV2V1 = v2.bildekreuzprodukt(v1);




ou



Vektor produitVectorielV1VNew = v2.bildekreuzprodukt(new Vektor(5,9,32));
               
Vektor vx= new Vektor(8, 4, 12).bildekreuzprodukt(new Vektor(5,9,32));  



Bonne journée
Commenter la réponse de cgandco
Messages postés
13635
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
22 août 2019
298
-1
Merci
Bonsoir

un produit scalaire ne retourne pas un vecteur mais un scalaire, souvent un nombre réel.

Donc ta fonction ne peut retourner un vecteur.
A moins que tu ne veuilles calculer le produit vectoriel qui lui retourne bien un vecteur.

Enfin le bout de code que tu as montré, suggère un "clone" du premier vecteur puisqu'il n'y a aucune opération, juste des assignations.

Cela dit,
tu as 3 options pour affecter une variable interne, écrire une propriété, écrire un setter, ou passer un paramètre à un constructeur.
Commenter la réponse de Whismeril