السلام عليكم ورحمة الله
كيف يمكنني رسم الشكل التالي باستخدام OpenGL primitives
واتمنى شيئ من التوضيح لاني ارى الشكل غامض بالنسبة لي

وشكرا..
خآلص احترامي
السلام عليكم ورحمة الله
كيف يمكنني رسم الشكل التالي باستخدام OpenGL primitives
واتمنى شيئ من التوضيح لاني ارى الشكل غامض بالنسبة لي

وشكرا..
خآلص احترامي
لا يوجد رد !!!!
شكرا لكم لقد استطعت حل هذا السؤال بمساعدت منتدى اخر ^_^
#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);
}اقتباسشكرا لكم لقد استطعت حل هذا السؤال بمساعدت منتدى اخر ^_^
جيد قم بوضع الحل من أجل الإفادة
اهلا بكم ..
هذا الكود الذي توصلت له..
#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;
}ما رأيكم ؟؟؟
هل من اخطاء يجب تصحيحها؟؟
اتمنى ان ارى ردود هذه المرة..
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…