Produit scalaire de deux vecteurs

- 4 juil. 2016 à 20:11 - Dernière réponse :
Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
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 

Votre réponse

2 réponses

Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Dernière intervention
22 juin 2017
- 5 juil. 2016 à 11:55
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
12258
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 novembre 2018
- 4 juil. 2016 à 21:19
-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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.