begin process at 2012 02 12 22:03:41
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > RECHERCHE DE L'ÉQUATION CARTÉSIENNE D'UN PLAN À PARTIR DES COORDONNÉES DE 3 POINTS DE L'ESPACE

RECHERCHE DE L'ÉQUATION CARTÉSIENNE D'UN PLAN À PARTIR DES COORDONNÉES DE 3 POINTS DE L'ESPACE


 Information sur la source

Note :
6 / 10 - par 1 personne
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Classé sous :equation, cartésienne, plan, espace, point Niveau :Débutant Date de création :13/06/2006 Vu / téléchargé :14 566 / 215

Auteur : navydo

Ecrire un message privé
Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

 Description

Recherche l'équation cartésienne d'un plan à partir des coordonnées de  3 points de l'espace.

Source

  • #include <stdlib.h>
  • #include <stdio.h>
  • #include <math.h>
  • int main(int argc, char *argv[])
  • {
  • double xA=0,yA=0,zA=0,xB=0,yB=0,zB=0,xC=0,yC=0,zC=0,xAb=0,yAb=0,zAb=0,xAc=0,yAc=0,zAc=0,mineurUne=0,mineurDeux=0,mineurTrois=0,termeIndependant=0,verification=0;
  • printf("##EQUATION CARTESIENNE D'UN PLAN A PARTIR DE TROIS POINTS## Par Yvan\n\n\n");
  • printf("Entrez les coordonnees du point A\n");
  • printf("Xa :\n");
  • scanf("%lf",&xA);
  • printf("Ya :\n");
  • scanf("%lf",&yA);
  • printf("Za :\n");
  • scanf("%lf",&zA);
  • printf("Entrez les coordonnees du point B\n");
  • printf("Xb :\n");
  • scanf("%lf",&xB);
  • printf("Yb :\n");
  • scanf("%lf",&yB);
  • printf("Zb :\n");
  • scanf("%lf",&zB);
  • printf("Entrez les coordonnees du point C\n");
  • printf("Xc :\n");
  • scanf("%lf",&xC);
  • printf("Yc :\n");
  • scanf("%lf",&yC);
  • printf("Zc :\n");
  • scanf("%lf",&zC);
  • printf("AX= Lambda*AB+Mu*AC\n\n");//Formule générale
  • printf("AX=(X-%lf);(Y-%lf);(Z-%lf)\n",xA,yA,zA);
  • printf("AB=((%lf-%lf);(%lf-%lf);((%lf-%lf))\n",xB,xA,yB,yA,zB,zA);
  • printf("AC=((%lf-%lf);(%lf-%lf);((%lf-%lf))\n\n",xC,xA,yC,yA,zC,zA);
  • xAb=xB-xA;
  • yAb=yB-yA;
  • zAb=zB-zA;
  • xAc=xC-xA;
  • yAc=yC-yA;
  • zAc=zC-zA;
  • printf("AB=(%lf;%lf;%lf)\n",xAb,yAb,zAb);
  • printf("AC=(%lf;%lf;%lf)\n\n",xAc,yAc,zAc);
  • //Je cherche les mineurs car je résous matriciellement cette équation
  • mineurUne=(yAb*zAc)-(zAb*yAc);
  • mineurDeux=(-1)*((xAb*zAc)-(zAb*xAc));
  • mineurTrois=(xAb*yAc)-(yAb*xAc);
  • termeIndependant=((-1*xA*mineurUne)+(-1*yA*mineurDeux)+(-1*zA*mineurTrois));
  • printf("L'equation cartesienne est \n\n %lf X + %lf Y + %lf Z + %lf\n\n",mineurUne,mineurDeux,mineurTrois,termeIndependant);
  • verification=(xA*mineurUne+yA*mineurDeux+zA*mineurTrois+termeIndependant+xB*mineurUne+yB*mineurDeux+zB*mineurTrois+termeIndependant+xC*mineurUne+yC*mineurDeux+zC*mineurTrois+termeIndependant);
  • printf("Verification : On injecte les coordonnees de A,B et C dans l'equation cartesienne, ce qui nous donne %lf (Si cette valeur vaut zero, alors c'est correct)\n\n",verification);
  • system("PAUSE");
  • return 0;
  • }
#include <stdlib.h>
#include <stdio.h>
#include <math.h>

int main(int argc, char *argv[])
{

double xA=0,yA=0,zA=0,xB=0,yB=0,zB=0,xC=0,yC=0,zC=0,xAb=0,yAb=0,zAb=0,xAc=0,yAc=0,zAc=0,mineurUne=0,mineurDeux=0,mineurTrois=0,termeIndependant=0,verification=0;

printf("##EQUATION CARTESIENNE D'UN PLAN A PARTIR DE TROIS POINTS##  Par Yvan\n\n\n");

printf("Entrez les coordonnees du point A\n");
printf("Xa :\n");
scanf("%lf",&xA);
printf("Ya :\n");
scanf("%lf",&yA);
printf("Za :\n");
scanf("%lf",&zA);

printf("Entrez les coordonnees du point B\n");
printf("Xb :\n");
scanf("%lf",&xB);
printf("Yb :\n");
scanf("%lf",&yB);
printf("Zb :\n");
scanf("%lf",&zB);

printf("Entrez les coordonnees du point C\n");
printf("Xc :\n");
scanf("%lf",&xC);
printf("Yc :\n");
scanf("%lf",&yC);
printf("Zc :\n");
scanf("%lf",&zC);

printf("AX= Lambda*AB+Mu*AC\n\n");//Formule générale

printf("AX=(X-%lf);(Y-%lf);(Z-%lf)\n",xA,yA,zA);
printf("AB=((%lf-%lf);(%lf-%lf);((%lf-%lf))\n",xB,xA,yB,yA,zB,zA);
printf("AC=((%lf-%lf);(%lf-%lf);((%lf-%lf))\n\n",xC,xA,yC,yA,zC,zA);

xAb=xB-xA;
yAb=yB-yA;
zAb=zB-zA;

xAc=xC-xA;
yAc=yC-yA;
zAc=zC-zA;

printf("AB=(%lf;%lf;%lf)\n",xAb,yAb,zAb);
printf("AC=(%lf;%lf;%lf)\n\n",xAc,yAc,zAc);

//Je cherche les mineurs car je résous matriciellement cette équation
mineurUne=(yAb*zAc)-(zAb*yAc);
mineurDeux=(-1)*((xAb*zAc)-(zAb*xAc));
mineurTrois=(xAb*yAc)-(yAb*xAc);
termeIndependant=((-1*xA*mineurUne)+(-1*yA*mineurDeux)+(-1*zA*mineurTrois));

printf("L'equation cartesienne est \n\n %lf X + %lf Y + %lf Z + %lf\n\n",mineurUne,mineurDeux,mineurTrois,termeIndependant);
verification=(xA*mineurUne+yA*mineurDeux+zA*mineurTrois+termeIndependant+xB*mineurUne+yB*mineurDeux+zB*mineurTrois+termeIndependant+xC*mineurUne+yC*mineurDeux+zC*mineurTrois+termeIndependant);
printf("Verification : On injecte les coordonnees de A,B et C dans l'equation cartesienne, ce qui nous donne %lf (Si cette valeur vaut zero, alors c'est correct)\n\n",verification);

system("PAUSE");
return 0;
}

 Conclusion

Merci beaucoup à mon institutrice de mathématique ! Sans elle, je ne serais pas trouver les équations cartésiennes d'un plan !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • Recherche de l'équation cartésienne d'un plan à partir de 3 points.RENOMMEZ-LE EN EXETélécharger ce fichier [Réservé aux membres club]17 219 octets

Télécharger le zip


 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

 Sources en rapport avec celle ci

RESOLUTION D'UNE EQUATION DU SECOND DEGRÉ AVEC RACINES REEL... par maloum41
Source avec Zip Source avec une capture TRAITEMENT DE L'EQUATION D'UNE CONIQUE AVEC UN GRAMMAIRE par kinkek
Source avec Zip RESOLUTION D'EQUATION DE 1 A 4 DEGRES par sheorogath
SSCANF POUR SUPPRIMER DES ESPACES (COMME TRIM()) par darkpoulpo
Source avec Zip Source avec une capture GRAPHEUR 2D par BCedric

Commentaires et avis

Commentaire de navydo le 13/06/2006 23:11:21

Et voilà qui est mis !

Ps: Je suis un débutant, alors doucement les critiques ^_^

Commentaire de vecchio56 le 14/06/2006 14:51:03 administrateur CS

Pour moi institutrice c'est à l'école primaire, et je trouve étrange qu'on y parle d'équation de plan...

Commentaire de navydo le 14/06/2006 15:05:26

Oui, je veux dire professeur quoi.

Commentaire de navydo le 14/06/2006 15:05:53

Coment trouves-tu mon programme ?

Commentaire de luhtor le 14/06/2006 15:48:18

Ca a l'air tellement compliqué le truc qu'elle t'a dit. En soit, faut juste un produit vectoriel pour obtenir l'équation a une constante pret. 3 multiplication en plus et tu obtiens la constante. Donc je vois pas pk tu parles de matrices et encore moins de résolution d'équation :)

Commentaire de navydo le 14/06/2006 19:13:08

C'est une méthode comme une autre, et je la trouve assez simple et peut se résoudre matriellement, ou j'aurais pu la faire avec des substitutions.
( Ps: Tu dis que c'est possible par le produit vectoriel, mais je n'ai encore vu que le produit scalaire ! )

Commentaire de WiKonSoN le 17/06/2006 13:09:01

je comprend pas trop ton code
mais pour les variables initialiser a zero je crois
que tu pers rien en les declarant globalement pour eviter les initialisation x=0, ya=0  etc
que moi je trouve un peu chiant   Ainsi
tu pouras ecrire
double xA,yA,zA,xB,yB,zB,xC,yC,zC,xAb,yAb,zAb,xAc,
yAc,zAc,mineurUne,mineurDeux,mineurTrois,termeIndependant,verification;
s'il sont declare globalement (au fait ils sont automatiquement tous initialisez a zero

un code sans controle d'entre de test et autre c'est pas interressant
bon du courage
a++

Commentaire de luhtor le 17/06/2006 15:53:24

Intéret de les déclarer globalement ? aucun... donc faut surtout pas déclarer ces variables globalement.
Des variables globales, c'est vraiment quand ya pas d'autre solution. Et puis écrire "=0" c'est quand meme pas épuisant.

Commentaire de navydo le 17/06/2006 20:05:57

Je viens de jeter un coup d'oeuil sur ta méthode luhtor, avec le produit vectoriel, et c'est en effet beaucoup plus simple avec ta façon !

Commentaire de vecchio56 le 17/06/2006 20:23:54 administrateur CS

Déclarer les variables globales pour éviter de les initialiser à zéro, c'est la première fois que j'entends ca, et je pense que c'est une énormité

Commentaire de BruNews le 17/06/2006 23:24:07 administrateur CS

C'est tres clairement du nimporte quoi.
La justification de variables globales est de ne pas avoir à empiler, dépiler les parms, la (les) fonction qui s'en servira aura des adresses connues à la compil au lieu d'offset sur esp, tout ceci pour dire que ça peut se justifier dans une recherche de vitesse maxi mais pas autrement.

Commentaire de WiKonSoN le 24/06/2006 20:05:09

salut vecchio
c'est dans la norme ANSI/ISO
par exemple je fais;

int i;//i est initialise a zero et quand je ferais int i=0; globalement c'est inutile
main () { // quand la fonction est de type int on peut laisse le int
  int age;//age a une valeur aleatoire
  cout<<"entre votre age\n";
  if(!i) // si i est 0 ce qui est est tjrs vrai
  cin>>age; // donc il entrera toujours son age
  i=1;
  return 0;
}
bon ca marche  
et quand bien meme en prog de jeux ca marche ie je declare x et y globalement
et j'affiche l"image a x et y  c'est tjrs tous en haut a partir de 0,0
et selon moi il ne pers rien en declarant (certains) variables globalement
a++

Commentaire de vinc1008881 le 26/07/2006 17:57:23

sinon il y a plus simple

calcul des coordonées du vecteur AB et du vecteur AC
calcul du produit vectoriel AB^AC =
|a
|b
|c

d'ou P: ax + by + cz + d = 0, d s'obtient en résolvant une equation à une inconnu (faut se servir des coord de A)

ça nous donne : en C !!

int main (){
typedef struct{
int x;
int y;
int z;
} vecteur;

typedef struct{
int x;
int y;
int z;
} point;

point A, B, C;
vecteur AB, AC;
int a, b, c, d;

/*avec scanf on entre les coordonées de points dans A B C */

AB.x = B.x - A.x;
AB.y = B.y - A.y;
AB.z = B.z - A.z;

AC.x = C.x - A.x;
AC.y = C.y - A.y;
AC.z = C.z - A.z;

a = AB.y*AC.z - AB.z*AC.y;
b = -AB.x*AC.z + AB.z*AC.x;/*attention au signe*/
c = AB.x*AC.y - AB.y*AC.x;
d = -a*A.x - b*A.y - c*A.z;/*on résoud*/

printf...
return 0;
}

Commentaire de nicolasdemin le 12/03/2007 17:27:33

Si je peut me permettre :

typedef struct{
int x;
int y;
int z;
} vecteur;

typedef struct{
int x;
int y;
int z;
} point;
C'est un peu redondant tout ca non?

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

definition plan dans l'espace [ par bumbob ] Bonjour,je débute en programmation c++. Je cherche à définir un plan, sans le tracer, dans l'espace. Il doit être défini de manière continue. Pour cel Problème pour mettre une Dialog Modale au premier plan [ par ZMJUVENTINO ] Salut, je travaille sur Visual C++ 6Je voudrais à partir de mon application afficher une CDialog modale et qu'elle s'affiche absolument au premier pla Mette une image arrière plan du DOS [ par yabross ] Slt tout le monde, je suis débutant en c++, j'ai une question à vous posez, est-il de mette une image en arrière plan du DOS avec le dev c++, si possi lancer une execution en arrier plan [ par samir201 ] salut tous le monde, je veux devlopper un programme qui s'execute en arrier plan (comme les processus) ,sachant que mon programme contient une foncti Savoir si une fenêtre est au 1er plan [ par Lustuc ] Il y a plein de topics sur "comment forcer une fenêtre à être au 1er plan?". Pour ma part, je recherche une fonction qui me permet, à partir du ha rectangle en premier plan [ par minetgrostiti ] Bonjour En c#: J'ai une pictureBox incluant une image le tout dans Form1 Je crée un rectangle (DrawRectangle) pour délimiter une zone de contrôle sur Allocation mémoire [ par cogno ] Bonjour à tous. Je me posais les deux questions suivantes: 1/ Quand on parle de la pile et du tas, c'est un espace mémoire alloué dans la RAM? 2/ Si surpression espace [ par fadiam ] Bonjour à tous Je cherche le moyen de supprimer des espaces de telle sorte à ce qu'il n'en reste un. Lorsque l'on entre une chaine de caractère : "co Fenêtre en premier plan sans focus [ par thenaoh ] Bonjour, Je cherche depuis plusieurs jours à afficher une application de mon cru (une appli AIR) en premier plan, mais sans qu'elle prenne le focus a


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,404 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales