سكآكر

من يستطيع مساعدتي في رسم هذا الشكل بالاوبن جي ال

5 ردود في هذا الموضوع

السلام عليكم ورحمة الله

كيف يمكنني رسم الشكل التالي باستخدام OpenGL primitives

واتمنى شيئ من التوضيح لاني ارى الشكل غامض بالنسبة لي

36849501.jpg

وشكرا..

خآلص احترامي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

لا يوجد رد !!!!

شكرا لكم لقد استطعت حل هذا السؤال بمساعدت منتدى اخر ^_^

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

#include"windows.h"
#include"conio.h"
#include"iostream"
#include"Gl/gl.h"
#include"math.h"
#include"Gl/glu.h"
#include"Gl/glaux.h"
#pragma comment (lib,"OpenGL32.lib")
#pragma comment (lib,"glu32.lib")
#pragma comment (lib,"glaux")
/***********CircleMidpoints()********/
void CircleMidpoints(int Xcenter,int
Ycenter,int radius){
int x=0;
int y=radius;
int p=1-radius;
void CirclePlotPoints(int,int,int,int);
CirclePlotPoints(Xcenter,Ycenter,x,y);
while(x<y){
x++;
if(p<0)
p+=2*x+1;
else{
y--;
p+=2*(x-y)+1;}
CirclePlotPoints(Xcenter,Ycenter,x,y);}}
/*************setPixel*************/
void setPixel(int x,int y){
glBegin(GL_POINTS);
glVertex2i(x,y);
glEnd();
glFlush();
}
void CALLBACK display(){

glColor3f(1,0,0);

glBegin(GL_QUADS);
glVertex2i(0,0);
glVertex2i(200,0);
glVertex2i(200,300);
glVertex2i(0,300);
glEnd();

glColor3f(0,1,0);
glBegin(GL_QUADS);
glVertex2i(60,110);
glVertex2i(60,190);
glVertex2i(140,190);
glVertex2i(140,110);
glEnd();

glBegin(GL_TRIANGLES);
glVertex2i(20,50);
glVertex2i(100,50);
glVertex2i(20,100);

glVertex2i(180,50);
glVertex2i(100,50);
glVertex2i(180,100);

glVertex2i(180,250);
glVertex2i(180,200);
glVertex2i(100,250);

glVertex2i(20,250);
glVertex2i(100,250);
glVertex2i(20,200);
glEnd();

glPointSize(10);
CircleMidpoints(100,150,80);
CircleMidpoints(100,150,60);
}
/************CirclePlotPoints**************
**/
void CirclePlotPoints(int Xcenter,int
Ycenter,int x,int y){
setPixel(Xcenter + x ,Ycenter + y);
setPixel(Xcenter - x ,Ycenter + y);
setPixel(Xcenter + x ,Ycenter - y);
setPixel(Xcenter - x ,Ycenter - y);
setPixel(Xcenter + y ,Ycenter + x);
setPixel(Xcenter - y ,Ycenter + x);
setPixel(Xcenter + y ,Ycenter - x);
setPixel(Xcenter - y ,Ycenter - x);
}
void main(){
auxInitDisplayMode(AUX_RGB);
auxInitPosition(0,0,600,600);
auxInitWindow(L"Example");
auxMainLoop(display);
}

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
شكرا لكم لقد استطعت حل هذا السؤال بمساعدت منتدى اخر ^_^

جيد قم بوضع الحل من أجل الإفادة

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اهلا بكم ..

هذا الكود الذي توصلت له..


#include <windows.h>
#include <GL/glut.h>
#include <math.h>

void drawShapes()
{

//the circules
//1st one
GLfloat xi,yi,theta=0;
GLfloat x_c,y_c,r;
int count;

x_c=200,y_c=250,r=160;
glBegin(GL_POLYGON);
for(count=1;count<=10000;count++)
{
theta=theta+0.001;
xi=x_c + r * cos (theta);
yi=y_c + r * sin (theta);
glColor3f(1,0,1);
glVertex2d(xi,yi);
}
glEnd();

//2nd one
x_c=200,y_c=250,r=130;
glBegin(GL_POLYGON);
for(count=1;count<=10000;count++)
{
theta=theta+0.001;
xi=x_c + r * cos (theta);
yi=y_c + r * sin (theta);
glColor3f(0,0,1);
glVertex2d(xi,yi);
}
glEnd();

//3rdcircle
x_c=200,y_c=250,r=115;
glBegin(GL_POLYGON);
for(count=1;count<=10000;count++)
{
theta=theta+0.001;
xi=x_c + r * cos (theta);
yi=y_c + r * sin (theta);
glColor3f(0.5,0.5,1);
glVertex2d(xi,yi);
}
glEnd();
//4thcircle
x_c=200,y_c=250,r=90;
glBegin(GL_POLYGON);
for(count=1;count<=10000;count++)
{
theta=theta+0.001;
xi=x_c + r * cos (theta);
yi=y_c + r * sin (theta);
glColor3f(0,0,0);
glVertex2d(xi,yi);
}
glEnd();



//THE POLYGON

glColor3f(1.0f, 1.0f, 1.0f); // sets color
glBegin(GL_POLYGON);
glVertex2i(150, 180); // vertex 1
glVertex2f(250, 180); // vertex 2
glVertex2f(250, 315); // vertex 3
glVertex2f(150, 315); // vertex 4

glEnd();
glFlush();
glTranslatef(50,10 ,0);
glEnd();
//TRIANGLES
//1
glBegin(GL_TRIANGLES);
glColor3f(0,1,0);
glVertex2i(300,370);
glVertex2i(300,450);
glVertex2i(200,450);
glEnd();

//2
glBegin(GL_TRIANGLES);
glColor3f(1,1,0);
glVertex2i(300,10);
glVertex2i(300,90);
glVertex2i(170,10);

glEnd();
//3
glBegin(GL_TRIANGLES);
glColor3f(.2,1,0.5);
glVertex2i(10,10);
glVertex2i(110,10);
glVertex2i(10,110);

glEnd();
//4
glBegin(GL_TRIANGLES);
glColor3f(1,1,0);
glVertex2i(10,370);
glVertex2i(140,450);
glVertex2i(10,450);

glEnd();
glFlush();
}

///////////////////////////////////

void Initial ()
{
glClearColor(0.0,0.0,0.0,0.0); // set white background color
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
;
gluOrtho2D(0,400,0,500);
}

//the main

int main()
{
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize (300,340);
glutInitWindowPosition (50,50);
glutCreateWindow("Abeer_Q2");
Initial();
glutDisplayFunc(drawShapes);
glutMainLoop();
return 0;
}

ما رأيكم ؟؟؟

هل من اخطاء يجب تصحيحها؟؟

اتمنى ان ارى ردود هذه المرة..

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .