Produit scalaire de deux vecteurs

Jackie Kolokou - 4 juil. 2016 à 20:11
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

2 réponses

cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017 9
5 juil. 2016 à 11:55
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
0
Whismeril Messages postés 18302 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 30 mars 2023 622
4 juil. 2016 à 21:19
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.
-1
Rejoignez-nous