Bonjour, je suis actuellement élève dans une ecole d'ingenieur en premiere année.
Je dois réaliser un projet sur la triangulation de Delaunay en programmation Pascal (turbo pascal). Est ce que quelqu'un peu me venir en aide ?
Merci
Bonjour, je suis actuellement élève dans une ecole d'ingenieur en premiere année.
Je dois réaliser un projet sur la triangulation de Delaunay en programmation Pascal (turbo pascal). Est ce que quelqu'un peu me venir en aide ?
Merci
t'as un bosse sur l'algorithme , pour t'aider ls faut bien que tu fasses quelque chose on en discute sur le forum
tout d'abord le principe de la traingulation de Delaunay
quel que soit le nuage de point à trianguler la triangulation de Delaunay est unique
pourquoi? :
lors de la construction des triangels elle verifier un de ses critères
-Circle vide
-Max-Min
comment?:
il faut developper deux fonctions qui sont le noyeau de votre application :
calcul de l'orientation, gauche ou a droite
Calcul d' un point qui appartient au cercle ou non (in_circle)
Algorithme utilisée :
Divide and conquer
incrémental
Implémentation :
a toi , ;-)
http://membres.lycos.fr/cnts2003/forums/viewforum.php?f=7&sid=1996c05615db247438f70b48146969c4
un site pour telecharger un mémoire bien détail sur delaunay et diagramme de voronoi dans le cas contraint
Merci pour cette petite aide, neanmoins nous avons un petit probleme pour demarer: comment fait on pour savoir si un pt est un l'interieur ou a l'exterieur d'un cercle en PASCAL ?
En calculant la distance au carré du point au centre du cercle et en comparant cette distance au carré avec le rayon au carré du cercleEnvoyé par Smuk
J'affirme péremptoirement que toute affirmation péremptoire est fausse
5ième élément : barde-prince des figures de style, duc de la synecdoque
Je ne réponds jamais aux questions techniques par MP
:
comment peut on faire pour calculer les longueurs des coté d'un triangle a partir de ses coordonnées ainsi que les angles de celui ci ...
ou si quelqu'un a une meilleur idée pour demarer notre programme pascal
Envoyé par SmukIl doit y avoir quelque chose que je n'ai pas comprisEnvoyé par Smuk
J'affirme péremptoirement que toute affirmation péremptoire est fausse
5ième élément : barde-prince des figures de style, duc de la synecdoque
Je ne réponds jamais aux questions techniques par MP
Ben il est peut-être pas dans une école d'ingénieurs en triangles!Envoyé par pgibone
Tu calcules ton vecteur centre du cercle-ton point, tu calcules sa norme, et puis voila.
En gros ça doit faire un racine carré((xpoint-xcentre)^2+(ypoint-ycentre)^2)
Pythagore, c'est pas du niveau 3ème?
Ca risque d'être chaud pour du Delaunay...
le noyeau de la triangulation de delaunay c deux fonctions
il y a un exemple en delphi de paul borke (australien)
ou dans le site http://www.torry.net cherche par mot clé voronoï
si tu veux faire des rappel en math alors je teconseil d'etre ici :
http://www.wolfram.mathworld.com
salut c'est encore moi!! j'ai un problème pour le calcule de la variable ab. à la main je trouve 41900 et le pc me trouve un résultat négatif quelqu'un peut m'aider ????
program triangle;
uses graph;
var gd, gm :integer;
cercle,ab,bc,ca,i,j,c,d :real;
mat: array [1..4,1..2] of integer;
begin
gd:= detect;
initgraph (gd,gm,'');
mat[1,1]:=10;
mat[1,2]:=10;
mat[2,1]:=630;
mat[2,2]:=240;
mat[3,1]:=10;
mat[3,2]:=470;
mat[4,1]:=340;
mat[4,2]:=200;
setcolor(3);
line(mat[1,1],mat[1,2],mat[2,1],mat[2,2]);
line(mat[2,1],mat[2,2],mat[3,1],mat[3,2]);
line(mat[1,1],mat[1,2],mat[3,1],mat[3,2]);
circle(mat[4,1],mat[4,2],5);
cercle:=(((mat[1,1]-mat[4,1])*(mat[2,2]-mat[4,2])*(sqr(mat[3,1]-mat[4,1])+sqr(mat[3,2]-mat[4,2]))
+
(mat[1,2]-mat[4,2])*((sqr(mat[2,1]-mat[4,1])+sqr(mat[2,2]-mat[4,2]))*(mat[3,1]-mat[4,1]))
+
(sqr(mat[1,1]-mat[4,1])+sqr(mat[1,2]-mat[4,2]))*(mat[2,1]-mat[4,1])*(mat[3,2]-mat[4,2]))
-
((mat[3,1]-mat[4,1])*(mat[2,2]-mat[4,2])*(sqr(mat[1,1]-mat[4,1])+sqr(mat[1,2]-mat[4,2]))
+
(mat[3,2]-mat[4,2])*(sqr(mat[2,1]-mat[4,1])+sqr(mat[2,2]-mat[4,2]))*(mat[1,1]-mat[4,1])
+
(sqr(mat[3,1]-mat[4,1])+sqr(mat[3,2]-mat[4,2]))*(mat[2,1]-mat[4,1])*(mat[1,2]-mat[4,2])));
writeln(cercle);
if (cercle>0) then
begin
ab:=((mat[1,1]-mat[4,1])*(mat[2,2]-mat[4,2]))-((mat[2,1]-mat[4,1])*(mat[1,2]-mat[4,2]));
bc:=(((mat[2,1]-mat[4,1])*(mat[3,2]-mat[4,2]))-((mat[3,1]-mat[4,1])*(mat[2,2]-mat[4,2])));
ca:=(((mat[3,1]-mat[4,1])*(mat[1,2]-mat[4,2]))-((mat[1,1]-mat[4,1])*(mat[3,2]-mat[4,2])));
c:=((mat[1,1]-mat[4,1])*(mat[2,2]-mat[4,2]));
d:=(mat[2,1]-mat[4,1])*(mat[1,2]-mat[4,2]);
if (ab>0) and (bc>0) and (ca>0) then
begin
setcolor(4);
line(mat[1,1],mat[1,2],mat[4,1],mat[4,2]);
line(mat[2,1],mat[2,2],mat[4,1],mat[4,2]);
line(mat[3,1],mat[3,2],mat[4,1],mat[4,2]);
end;
if (ab>0) and (bc>0) and (ca<0) then
begin
setcolor(4);
line(mat[1,1],mat[1,2],mat[4,1],mat[4,2]);
line(mat[3,1],mat[3,2],mat[4,1],mat[4,2]);
end;
if (ab<0) and (bc>0) and (ca>0) then
begin
setcolor(4);
line(mat[1,1],mat[1,2],mat[4,1],mat[4,2]);
line(mat[2,1],mat[2,2],mat[4,1],mat[4,2]);
end;
if (ab>0) and (bc<0) and (ca>0) then
begin
setcolor(4);
line(mat[2,1],mat[2,2],mat[4,1],mat[4,2]);
line(mat[3,1],mat[3,2],mat[4,1],mat[4,2]);
end;
end;
writeln('ab= ',ab);
writeln('c= ',c);
writeln('d= ',d);
writeln('bc= ',bc);
writeln('ca= ',ca);
readln;
closegraph;
end.
merci
Salut,
Tu as un léger dépassement de capacité sur la seconde moitié de ton expression:Envoyé par Smuk
qui ne rentre pas dans un Integer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ((mat[2,1]-mat[4,1])*(mat[1,2]-mat[4,2]))=-81700
Essaye en passant en Longint
Cf http://pascal.developpez.com/faq/?pa...ms#IntOverflow
MERCI plegat tu nous à aidé!!!!!! notre programme fonctionnent dans la théorie maintenant on va passé à la vitesse supérieur!! au programme génération de point au fur et à mesure !!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager