Produit scalaire de deux vecteurs

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

Répondre au sujet
cgandco 219 Messages postés mercredi 26 octobre 2011Date d'inscription 22 juin 2017 Dernière intervention - 5 juil. 2016 à 11:55
0
Utile
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
Whismeril 11442 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 26 avril 2018 Dernière intervention - 4 juil. 2016 à 21:19
-1
Utile
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.