maillage , table de connectivité
bonjour:)
voilà , ici je vous présente , le problème que je dois résoudre ,
en gros j'ai un maillage à faire , il y a deux fichiers , le premier contient des points(noeuds) et chaque point a deux coordonnés . le second donne un tableau de triangle(chaque triangle est appelé élément) , dont chacun des point représente"un point du premier tableau"
chaque élément passe donc par 3 noeuds
chaque noeud a 2 coordonnées
comment créer une table de connectivité entre chaque élément(triangle) et les noeuds qui le forment
puis un tableau de connectivité entre chaque noeud et ses coordonnées ?
si quelqu'un a une premiere idée ,
merci d avance
c++, maillage table de connectivité
voilà je vous présente un exemple
j'ai un premier fichier
qui se présente comme ci-dessous(les noeuds)
"fichier2"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| 30 2 0 1
1 1 0 1
2 0.80901699999999999 0.587785 1
3 0.30901699999999999 0.95105700000000004 1
4 -0.30901699999999999 0.95105700000000004 1
5 -0.80901699999999999 0.587785 1
6 -1 3.5897899999999999e-09 1
7 -0.80901699999999999 -0.587785 1
8 -0.30901699999999999 -0.95105700000000004 1
9 0.30901699999999999 -0.95105700000000004 1
10 0.80901699999999999 -0.587785 1
11 3 0 2
12 2.4270499999999999 1.76336 2
13 0.92705099999999996 2.85317 2
14 -0.92705099999999996 2.85317 2
15 -2.4270499999999999 1.76336 2
16 -3 1.07694e-08 2
17 -2.4270499999999999 -1.76336 2
18 -0.92705099999999996 -2.85317 2
19 0.92705099999999996 -2.85317 2
20 2.4270499999999999 -1.76336 2
21 -1.8470647354641934 -0.60014770447655841 0
22 -1.1415502165304945 -1.5712075628654207 0
23 -1.1415502165304945 1.5712075628654207 0
24 0 1.9421197131879349 0
25 -1.8470647239512119 0.60014770806634843 0
26 1.1415502165304945 -1.5712075628654207 0
27 1.8470647297077027 -0.60014770627145331 0
28 0 -1.9421197131879349 0
29 1.1415502165304945 1.5712075628654207 0
30 1.8470647297077027 0.60014770627145331 0 |
et celui là (les éléments):
"fichier1"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| 40 3 0
1 6 25 21
2 6 21 7
3 21 22 7
4 19 26 28
5 24 23 4
6 7 22 8
7 12 13 29
8 13 14 24
9 23 25 5
10 21 25 16
11 23 15 25
12 23 5 4
13 22 21 17
14 4 3 24
15 6 5 25
16 15 16 25
17 28 22 18
18 24 29 13
19 14 15 23
20 9 26 10
21 27 1 10
22 22 28 8
23 27 11 30
24 26 20 27
25 8 28 9
26 17 18 22
27 30 29 2
28 16 17 21
29 2 29 3
30 2 1 30
31 26 27 10
32 19 20 26
33 27 30 1
34 14 23 24
35 20 11 27
36 29 24 3
37 18 19 28
38 28 26 9
39 11 12 30
40 29 30 12 |
le principe est le suivant :
pour le "fichier1":
la premiere ligne contient le nombre d’éléments de ton maillage, la geometrie (3=triangle) et le milieu
l'idée est de faire une boucle sur le nombre d'éléments de lire le fichier (avec fscanf) pour créer la table de connectivité c'est grosso modo un tableau qui associe au numero d'un élement les numeros des noeuds associés.
Pour le "fichier2" :
meme chose que pour le fichier1 sauf que la premier ligne contien le nombre de noeuds, la dimension (ici 2) une condition 1 et une condition 2.
il faut faire une boucle sur le nombre de noeuds pour créer un tableau qui associe au n° du noeuds ses coordonnées et la conditions.
comment faire ça ? je veux des idées , pour que pas une méthode pour que je puisse commencer mon code(je ne sais pas bien comment commencer le code ) c'est ma première fois de faire du c++
merci bien :D
table de connectivité en c++
bonjour , et merci pour votre aide , :D
mais je me perd un peut dans votre discutions , elle est à un niveau tellement élevé , part rapport à mon niveau de débutant en c++
tout y est surement dans ces codes , mais je ne peut les prendre comme ça sans bien comprendre ce que fait chaque ligne .
est ce qu'il est possible de me donner des commentaires ligne par ligne ??
merci bien ,
aussi j'ai vu dans la classe coordonnée , à la ligne 4 :
Code:
Coordonnee(double x, double y):x_(x),y(y){}
ce n'est pas plutot :
Code:
Coordonnee(double x, double y):x_(x),y_(y){}
(j'ai ajouté un underscore "_", à y )
merci d'avance ,
maillage,table de connectivité
Bonjour , et merci pour vos explications:)
bon j'ai commencé à coder selon votre model , "je code sous code::bloc"
j'ai donc créer pour l'instant:
4 headers (coordonne.h,noeud.h,triangle.h et element.h) comme j'ai 4 classes et pour chaque header correspond un fichier source (coordonnee.cpp,noeud.cpp,element.cpp et triangle.cpp) , tout ceci plus le main.cpp
déjà est ce quelle est bonne mon organisation ? 8O
maintenant que j'ai les classes , les constructeurs et les attributs , que me reste t-il à faire ?
-initialiser les attributs dans leurs fichiers.cpp respectives ??
-implémenter les méthodes dans les fichiers.cpp respectives??
et le dernier code , <map> ? il doit etre placé ou ? :cry: dans le main.cpp??