السلام عليكــم ورحمـة الله وبركاتــه
اذا كان عندي ملف يحتوي
v 0.0 0.0 1.0
v 0.0 1.0 0.0
v 0.0 1.0 1.0
v 1.0 0.0 0.0
v 1.0 0.0 1.0
v 1.0 1.0 0.0
v 1.0 1.0 1.0
vn 0.0 0.0 1.0
vn 0.0 0.0 -1.0
vn 0.0 1.0 0.0
vn 0.0 -1.0 0.0
vn 1.0 0.0 0.0
vn -1.0 0.0 0.0
f 1//2 7//2 5//2
f 1//2 3//2 7//2
f 1//6 4//6 3//6
f 1//6 2//6 4//6
f 3//3 8//3 7//3
f 3//3 4//3 8//3
f 5//5 7//5 8//5
f 5//5 8//5 6//5
f 1//4 5//4 6//4
f 1//4 6//4 2//4
f 2//1 6//1 8//1
f 2//1 8//1 4//1
v 0.0 0.0 0.0
و اردت قراءته هذا الكود يمكنني من ذلك
int v1;
int v2;
int v3;
};
struct Vertex {
float x;
float y;
float z;
};
using namespace std;
static void display(void)
{
// move the view a lil down so we could get the tree.obj in the centre of screen
glTranslatef(0.0, -0.50, 0.0);
// clear all pixels
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
Vertex v[50000];
Triangle t[50000];
int vertexCount = 0;
int triangleCount = 0;
char line[100];
struct Triangle {و لقراءة الملف نستعمل هذا الكود
if (fp != NULL)
{
while (fgets(line, 99, fp))
{
if (line[0] == 'v')
{
sscanf(line, "%*c %f %f %f", &v[vertexCount].x, &v[vertexCount].y, &v[vertexCount].z);
vertexCount++;
}
else if (line[0] == 'f')
{
sscanf(line, "%*c %d %d %d", &t[triangleCount].v1, &t[triangleCount].v2, &t[triangleCount].v3);
triangleCount++;
}
}
}
fclose(fp);
FILE *fp = fopen("tree.obj","r");لكنني فكرت ببعض التغييرات * Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} @page Section1 {size:612.0pt 792.0pt; margin:70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} -->
بحيث ان العمل ب الجدول لم يعجبني
اي هل استطيع ان اغير
int v1;
int v2;
int v3;
};
struct Vertex {
float x;
float y;
float z;
};
Vertex v[50000];
Triangle t[50000];
struct Triangle {ب
{ int v1
int v2
int v3 ;
struct objet *svt;
}; typedef struct objet triangles;
struct objet
{ float x
float y
float z ;
struct objet *svt;
}; typedef struct objet vertexs;
traingle *t
vertex *v
struct objet
و منه نعوض
v[vertexCount].x
ب
vertex->x
هل هذا التعويض صحيح لانني ارى انه هنا تنقصنا ان نعلم في اي مكان هي بالضبط اي
ertexCount
ثم نعوض الكود
for (int i=0; i<triangleCount; i++)
ب
while (t!=NULL)
لم ابدا التبديل بعد لانني اردت استشارتكم هل يصلح هذا التغيير ام لا خاصة وانني وقعت امام مشكلة
هي تعويض هذا السطر
(v[t.v2-1].x , v[t.v2-1], v[t.v2-1].z );
(v[t.v3-1].x , v[t.v3-1].y , v[t.v3-1].z );
(v[t.v1-1].x , v[t.v1-1].y, v[t.v1-1].z );
لم اعرف كيف ابدل هذه الاسطر
*****************************************************
لي سؤال اخر في نفس النوع من الملفات و التي تكون معقدة نوعا ما نجد انه عوضا ان نجد
v 0.0 0.0 0.0
نجد
v 0.0 0.0 0.0 v 0.0 1.0 0.0 v 0.0 1.0 1.0
هنا تكون طريقة قراءة الملف بالسطر لا تنفع