ورود

View Full Version : نمایش 3 بعدی نموادر نقطه ای



esi_0o0
سه شنبه 04 شهریور 1393, 15:14 عصر
با سلام
در صورت امکان از دوستان گرافیکی ،بنده خروجی نمودار که از نرم افزار متلب میگیرم میخواستم با استفاده از opengl به صورت 3بعدی این ذرات را را نمایش دهم همانندعکسی که ضمیمه میکنم،لطفاً راهنمایی بفرمایید.122724
با تشکر

pswin.pooya
سه شنبه 04 شهریور 1393, 21:22 عصر
اینکار رو می تونید با particle system ها انجام بدید. از نظر ماهیتی شبیه هستن.

اما میتونید توی OpenGL 1.2 هم اینکار GL_POINTS و دستورات ساده رسم هم انجام بدید و یا اینکه از مکعب های تکسچر خورده هم استفاده کنید.

esi_0o0
چهارشنبه 05 شهریور 1393, 00:31 صبح
اینکار رو می تونید با particle system ها انجام بدید. از نظر ماهیتی شبیه هستن.

اما میتونید توی OpenGL 1.2 هم اینکار GL_POINTS و دستورات ساده رسم هم انجام بدید و یا اینکه از مکعب های تکسچر خورده هم استفاده کنید.

ممنون از توجه جنابعالی
من خودم زیاد حرفه ای نیستم تو این زمینه ولی یه کدی نوشتم که 2D اگه بیشتر راهنماییم کنین که بتونم مثله عکس بالایی بکنم بینهایت ممنون میشم


#include <windows.h>

#pragma comment( linker, "/entry:\"mainCRTStartup\"" )


#include <gl/glu.h>
#include <GL/gl.h>
#include <GL/glut.h>
#include <math.h>
int Height=600, Width=800;


void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
//glRotatef(40,1,0,1);
double x=0.65554433;
double y=0.78877776;
//double z=0.32122333;
int BNo=3;
double rx[3]={1,0.5,0};
double ry[3]={0,1,0};

int r;
double xx,yy;
for(int i=0;i<1000000;i++)
{
glColor3f(1,0,0);
glEnable(GL_POINT_SMOOTH);
glPointSize(1.0);
glBegin(GL_POINTS);

//if(i % 2 ==0)
// r=(((long long) round( x* pow(10,15))) % BNo); //((long) round(x* (double)pow(10,14)) % 4)+1;
//else
// r=(((long long) round( y* pow(10,15))) % BNo);
if(i % 2 ==0)
r=(((long long) ( x* (10,15))) % BNo); //((long) round(x* (double)pow(10,14)) % 4)+1;
else
r=(((long long) ( y* (10,15))) % BNo);

x=x+0.4999*(rx[r]-x);
y=y+0.4999*(ry[r]-y);

xx=-1+2*x;
yy=-1+2*y;


glVertex2f(xx,yy);
}
glEnd();
glutSwapBuffers();

}

int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE);
glutInitWindowSize(Width, Height);
glutCreateWindow("Hello OpenGL World");

glutDisplayFunc(display);
glutMainLoop();

}
با تشکر

esi_0o0
چهارشنبه 05 شهریور 1393, 01:24 صبح
با سلام
بنده در مورد opengl particle system point sprites ها یه سرچ زدم ،دقیقاً خواسته من هم این موضوع میباشد،اگه نمونه برنامه در این مورد محبت کنین احتمالاً بتونم یه نتیجه برسم
با تشکر