Accueil > Forum > > > > Objet Point et Triangle pb a la compilation
Objet Point et Triangle pb a la compilation
lundi 26 avril 2004 à 16:27:38 |
Objet Point et Triangle pb a la compilation

fatcat
|
Salut a tous Voila mon petit pb Je dois créer un programme qui effectue une triangulation de delauanay a partir d un fichier de Point avec 2 "double" comme attributs J ai cée 2 objet, Point et Triangle Et j ai des erreurs a la compilation Point.h#ifndef _POINT__H #define _POINT__H #include <iostream> //#include <pair.h> using namespace std;
class Point { protected: double x,y;
public: Point(double =0.0, double =0.0);
double dist(const Point&);
double abs() const; double ord() const; bool isEqual(const Point&) const;
void deplacer(double, double); void rotation(const Point&, double); void zoom(const Point&, double);
void afficher() const; }; #endif
| Point.cpp #include <iostream> #include "Point.h" #include <math.h> using namespace std;
Point::Point(double xx,double yy) { x = xx; y = yy; }
double Point::dist(const Point &p1) { return sqrt((x-p1.x)*(x-p1.x)+(y-p1.y)*(y-p1.y)); }
double Point::abs() const { return x; }
double Point::ord() const { return y; }
bool Point::isEqual(const Point &p1) const { return (x==p1.x && y==p1.y); }
void Point::deplacer(double dx,double dy) { x += dx; y += dy; }
void Point::rotation(const Point &w,double theta) { double d = dist(w); double alpha = acos((x-w.x)/sqrt((x-w.x)*(x-w.x)+(y-w.y)*(y-w.y))); double beta = asin((y-w.y)/sqrt((x-w.x)*(x-w.x)+(y-w.y)*(y-w.y))); theta = theta*M_PI/180.; if (d!=0) { x = w.x + d*cos(theta + alpha); y = w.y + d*sin(theta + beta); } }
void Point::zoom(const Point& a,double k) { x = (x-a.x)*k + a.x; y = (y-a.y)*k + a.y; }
void Point::afficher() const { cout << "{"<< x << " ; "<< y<< "}"; }
| Triangle.h#ifndef _TRIANGLE__H #define _TRIANGLE__H
#include <iostream> #include "Point.h" using namespace std;
class Triangle { protected: Point* a; Point* b; Point* c; Triangle* t1; Triangle* t2; Triangle* t3;
public: Triangle(Point*, Point*, Point*, Triangle*, Triangle*, Triangle*); Triangle(Point*, Point*, Point*); Triangle();
Point centreCC() const; Point sommet(int i) const;
double rayon() const; void deplacer(double, double); void rotation(const Point&, double); void zoom(const Point&, double);
void afficherT() const; }; #endif
| Triangle.cpp#include <iostream> #include "Triangle.h" using namespace std;
Triangle::Triangle(Point *aa, Point *bb, Point *cc, Triangle *tt1, Triangle *tt2, Triangle *tt3) { a =aa; b =bb; c =cc; t1 =tt1; t2 =tt2; t3 =tt3; } Triangle::Triangle(Point *a, Point *b, Point *c) { t1 = NULL; t2 = NULL; t3 = NULL; }
Triangle::Triangle() { a = NULL; b = NULL; c = NULL; t1 = NULL; t2 = NULL; t3 = NULL;
}
Point Triangle::centreCC() const { double x1,x2,x3,y1,y2,y3; double p,q,r,s,t,u; x1=a.x; x2=b.x; x3=c.x; y1=a.y; y2=b.y; y3=c.y; if (!a.isEqual(b) && !a.isEqual(c) && !b.isEqual(c)) { p=x2-x3; q=y2-y3; r=((y2+y3)*(y2-y3)+(x2+x3)*(x2-x3))/2.; s=x2-x1; t=y2-y1; u=((y2+y1)*(y2-y1)+(x2+x1)*(x2-x1))/2.; Point cc(((r*t-u*q)/(p*t-q*s)),((s*r-p*u)/(q*s-p*t))); return cc; } if (a.isEqual(b) && !a.isEqual(c)) { Point cc((a.x+c.x)/2.,(a.y+c.y)/2); return cc; } if (a.isEqual(c) && !a.isEqual(b)) { Point cc((a.x+b.x)/2,(a.y+b.y)/2); return cc; } if (c.isEqual(b) && !c.isEqual(a)) { Point cc((b.x+c.x)/2,(b.y+c.y)/2); return cc; } if (a.isEqual(c) && a.isEqual(b)) { Point cc(0,0); return cc; } }
Point Triangle::sommet(int i) const { if (i==1) return a; if (i==2) return b; if (i==3) return c; }
double Triangle::rayon() const // rayon du cercle circonscrit au triangle { return a.dist(centreCC()); }
void Triangle::deplacer(double dx,double dy) { a.deplacer(dx,dy); b.deplacer(dx,dy); c.deplacer(dx,dy); }
void Triangle::rotation(const Point &w,double theta) { a.rotation(w,theta); b.rotation(w,theta); c.rotation(w,theta); }
void Triangle::zoom(const Point &w, double k) { a.zoom(w, k); b.zoom(w, k); c.zoom(w, k); }
void Triangle::afficherT() const { a.afficher(); cout << " | "; b.afficher(); cout << " | "; c.afficher(); }
| makefile# Path for the Tcontainer project # INC_DIR = ../header
# # Path for the Algebra project # SRC_DIR = BIN_DIR = ../bin/ INC_DIR = ../header
CCC = g++ # # Global Flags # ALG_FLAGS = -O2 -g -Wno-deprecated
# # header files needed # INCLUDES = -I$(INC_DIR)
# # Targets # all: test
SRCS = Point.cpp Triangle.cpp
TEST_SRCS = Test.cpp
# # Règles de compilation des modules #
OBJS= $(SRCS:%.cc=$(BIN_DIR)%.o) TEST_OBJS= $(TEST_SRCS:%.cc=$(BIN_DIR)%.o)
$(BIN_DIR)%.o: %.cc $(CCC) $(INCLUDES) $(ALG_FLAGS) $< -c -o $@
# # executable de test # test : $(OBJS) $(TEST_OBJS) $(CCC) $(INCLUDES) $(CCCFLAGS) $(ALG_FLAGS) -o $(BIN_DIR)$@ $(OBJS) $(TEST_OBJS) -lm
|
quand je lance la compilation voila ce qu il me sort Triangle.cpp:51: error: request for member `x' in `this->Triangle::a', which is of non-class type `Point* const' Triangle.cpp:57: error: request for member `isEqual' in `this->Triangle::a', which is of non-aggregate type `Point* const Triangle.cpp:93: error: conversion from `Point* const' to non-scalar type ` Point' requested Triangle.cpp:117: error: request for member `deplacer' in `this->Triangle::a', which is of non-aggregate type `Point* je n ai que ce type d erreur mais plusieurs Si qqun a une solution ca m aiderait bcp Merci
|
|
mercredi 28 avril 2004 à 01:15:09 |
Re : Objet Point et Triangle pb a la compilation

ymca2003
|
a, b, c, t1, t2, et t3 sont des pointeurs dans la classe Triangle, l'accès au membre se fait avec "->" et pas "."
|
|
mercredi 28 avril 2004 à 14:00:00 |
Re : Objet Point et Triangle pb a la compilation

fatcat
|
Merci Quelle erreur de newb :) autre pb maintenant voila mon test.cpp #include <iostream> #include <math.h> #include "Point.h" #include "Triangle.h" using namespace std;
int main (int argc, char** argv) { double x,y; double theta; cout << "entrez les coord de a:" << endl; cout << "x : "; cin >> x; cout << "y : "; cin >> y; Point a(x,y); cout << "entrez les coord de b:" << endl; cout << "x : "; cin >> x; cout << "y : "; cin >> y; Point b(x,y); cout << "entrez les coord de c:" << endl; cout << "x : "; cin >> x; cout << "y : "; cin >> y; Point c(x,y); cout << "entrez les coord du centre de rotation:" << endl; cout << "x : "; cin >> x; cout << "y : "; cin >> y; cout << "entrez l angle de rotation (en degres):"; cin >> theta; Triangle T(a,b,c); T.centreCC().afficher(); cout << endl; // T.sommet(1).afficher(); // cout << endl; T.afficherT(); cout << endl; T.rotation(Point(x,y),theta); T.afficherT(); cout << endl; T.centreCC().afficher(); cout << endl; return 0; }
|
et il me renvoie cette erreur *Test.cpp [Warning] In function `int main(int, char**)': *37 Test.cpp no matching function for call to Triangle::Triangle(Point&, *22 Triangle.h candidates are: Triangle::Triangle(const Triangle&) *34 Triangle.h Triangle::Triangle() *33 Triangle.h Triangle::Triangle(Point*, Point*, Point*) *32 Triangle.h Triangle::Triangle(Point*, Point*, Point*, je sais que l erreur vien de la ligne Triangle T(a,b,c); dans test.cpp mais je vois pas comment faire
|
|
mercredi 28 avril 2004 à 22:03:33 |
Re : Objet Point et Triangle pb a la compilation

ymca2003
|
même erreur, ton constructeur attent des pointeurs, il faut lui les donner: Triangle T(&a,&b,&c);
|
|
vendredi 30 avril 2004 à 14:29:17 |
Re : Objet Point et Triangle pb a la compilation

fatcat
|
Un grand merci la compilation marche. Mon pb maintenant c est que chaque fois que le prog fait une operation sur un triangle (rotation, deplacement, affichage...) j ai une erreur de segmentation voila un lien vers les sources http://frandop.chez.tiscali.fr/iut/projet.tar.gz
|
|
Cette discussion est classée dans : const, void, double, triangle, isequal
Répondre à ce message
Sujets en rapport avec ce message
erreur de compilation [ par cpp_devlopper ]
bonjour,je suis un nouvel utilisateue de Microsoft visual studio, je l'ai essayé avec un programme "point.cpp"mais quand je le compile il ne reconnait
Pb peut etre de compilateur ?! Need Help please [ par Orezza ]
Orezzasalut à tous, je ne comprends vraiment pas le Pb, le compilateur Visual C++ indique 0 erreur-0 warning, or kand j'execute mon prog des ke je ren
Une classe comme donnée membre [ par agbere ]
Bonjour à tous Cela fait bien longtemps que je n'ai plus developpé en C++. Aujourd'hui je suis confronté au problème suivant: Code: /*****************
namespace [ par magic_Nono ]
j'ai modifié mes classes n'étant jamais instanciées en namespaceet j'ai quelques intérogations :1>dans le header, pkoi le static ne passe pas ex : st
ecrire dans un fichier [ par bellionl ]
salut,voila depuis une semaine je tente de conprendre le c++ avec borland c++ builderle problème est quand je veut écrire dans un fichier.création du
class matrice [ par flaky ]
Slt à tousJ'utilise une classe "matrice" (celle de nicolas aunai, téléchargée sur le site) qui fonctionne très bien. Mais j'ai du mal à manipuler l'ob
Membres amies [ par gdefrance ]
Bonsoir à tous, débutant en C++, j'ai besoin de votre aide pour trouver mon bug dans le programme.Voilà, je dois faire un exo avec un membre friend et
objet "double" non reconnu [ par totoscill ]
Bonjour,J'ai un problème lors de la compilation de mon programme. Une fonction déclarer "double" est déclaré par le compilateur void.déclaration de m
triangle de penrose et classe [ par ichigoZ710 ]
Bonjour à toutes et à tous,j'aurais aimé savoir comment commencer le début de mon code en rapport avec les triangles de penrose (un triangle de penros
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|