¡Ú·Ç¼¨ÈĤ´ÍøÍѾå¤ÎÃí°Õ¡Û

¡¡¢¨Âê̾¤Ï¶ñÂÎŪ¤Ë¡ª
¡¡¢¨³Ø¹»¤Î²ÝÂê¤Î´ÝÅꤲ¶Ø»ß¡ª
¡¡¢¨¥½¡¼¥¹¤ÎźÉդϡÖHTMLÊÑ´¹¥Ä¡¼¥ë¡×¤Ç»ú²¼¤²¡ª
¡¡¢¨ÊÖ¿®¤Î°úÍѤϺǾ®¸Â¤Ë¡ª
¡¡¢¨´Ä¶­¡ÊOS¤È¥³¥ó¥Ñ¥¤¥é¡Ë¤ä¾É¾õ¤Ï¶ñÂÎŪ¤Ë¾Ü¤·¤¯¡ª
¡¡¢¨¥Þ¥ë¥Á¥Ý¥¹¥È¡Ê¿½ÅÅê¹Æ¡Ë¤Ï¶à¤ó¤Ç¡ª

¡¡¾Ü¤·¤¯¤Ï¤³¤Á¤é



¡¡ËÜÅö¤Ï¤³¤ó¤Ê¤ËÂ礭¤¯½ñ¤­¤¿¤¯¤Ï¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢¤Ê¤«¤Ê¤«¼é¤Ã¤Æ¤¤¤¿¤À¤±¤Ê¤¯¤Æ¡Ä¡£
¡¡¼é¤Ã¤Æ¤¯¤À¤µ¤¤¤Í¡£¤ª´ê¤¤¤·¤Þ¤¹¡£¡Êby´ÉÍý¿Í¡Ë

C¸À¸ì¥½¡¼¥¹¢ÍHTML·Á¼°¥Ä¡¼¥ë¡¡¡¡¡¡·Ç¼¨ÈÄ£²¤Ï¤³¤Á¤é


´ÉÍý¼ÔÍÑ¥á¥Ë¥å¡¼    ¥Ä¥ê¡¼¤ËÌá¤ë    ·ÈÂÓÍÑURL    ¥Û¡¼¥à¥Ú¡¼¥¸    ¥í¥°    ¥¿¥°°ìÍ÷

No.18614

OpenGL¥×¥í¥°¥é¥à
Åê¹Æ¼Ô---¤Õ¤©¤²(2004/12/10 01:47:54)


C¸À¸ì´Ø·¸¤Î¼ÁÌä¤ÇOpenGL¤Ë¤Ä¤¤¤Æ¤Î¼ÁÌä¤Ï¤·¤Æ¤â¤¤¤¤¤Î¤Ç¤·¤ç¤¦¤«¡£
¤È¤Ë¤«¤¯¡¢ÌäÂê¤òÂǤäƤª¤­¤Þ¤¹¡£
³«È¯´Ä¶­¤ÏVC++¤Ç¤¹¡£
¸«¤Æ¤â¤é¤¤¤¿¤¤¥×¥í¥°¥é¥à¤Ï
http://www.wakayama-u.ac.jp/~tokoi/opengl/select.c
¤Î¥µ¥¤¥È¤Î¥×¥í¥°¥é¥à¤Ç¤¹¡£
¤½¤ÎÃæ¤Î¡¢ÃæÈ×Éôʬ¤Ç
unsigned int j, n = ptr[0];

/* ³¤¯£²¤Ä¤ÎÍ×ÁǤϡ¢ÁªÂò¤µ¤ì¤¿°ÌÃÖ¤ËÃÖ¤±¤ë±ü¹Ô¤­ÃÍ
¤ÎºÇ¾®ÃͤȺÇÂçÃͤòÉ乿¤Ê¤·À°¿ô¤Çɽ¤·¤¿¤â¤Î */
double near = (double)ptr[1] / (double)0x7fffffff;
double far = (double)ptr[2] / (double)0x7fffffff;

¤È¤¤¤¦¤È¤³¤í¤¬windows¤ÎVC++¤Ç¤Ï¥¨¥é¡¼¤¬¤Ç¤Þ¤¹¡£
¡ü¡ÖÈóɸ½à¤Î³ÈÄ¥µ¡Ç½¤¬»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤¹ : 'near' ¤Ï¸ß´¹À­¤Î¤¿¤á¤Ë»Ä¡¡¡¡¤µ¤ì¤Æ¤¤¤ë޷ްŽÜްŽÄŽÞ¤Ç¤¹¡£¡×
¡ü¡Ö 'double' : »ØÄꤵ¤ì¤¿·¿¤Ï¡¢¼±Ê̻ҤÎ̾Á°¤ò»ØÄꤻ¤º¤ËÀë¸À¤µ¤ì¤Æ¡¡¡¡¤¤¤Þ¤¹¡£¡×
¤È¤¤¤¦¥¨¥é¡¼¤Ê¤Î¤Ç¤¹¤¬Linux¤äMac¤Ç¤Ï¥³¥ó¥Ñ¥¤¥ë¤ÏÄ̤ë¤ß¤¿¤¤¤Ê¤Î¤Ç¤¹¡£¤É¤Ê¤¿¤«¤³¤Î¼ÁÌä¤ËÅú¤¨¤Æ¤â¤é¤¨¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£


¤³¤ÎÅê¹Æ¤Ë¥³¥á¥ó¥È¤¹¤ë

ºï½ü¥Ñ¥¹¥ï¡¼¥É

ȯ¸À¤Ë´Ø¤¹¤ë¾ðÊó Âê̾ Åê¹ÆÈÖ¹æ Åê¹Æ¼Ô̾ Åê¹ÆÆü»þ
<»Òµ­»ö> Re:OpenGL¥×¥í¥°¥é¥à 18615 Hermit 2004/12/10 07:39:43
<»Òµ­»ö> Re:OpenGL¥×¥í¥°¥é¥à 18616 ¤Ý¤Ø¤§ 2004/12/10 07:40:56
<»Òµ­»ö> Re:OpenGL¥×¥í¥°¥é¥à 18619 ¤Õ¤©¤² 2004/12/10 10:07:33
<»Òµ­»ö> OpenGL¥×¥í¥°¥é¥à¼ÁÌä 18626 ¤Õ¤©¤² 2004/12/11 11:20:31


No.18615

Re:OpenGL¥×¥í¥°¥é¥à
Åê¹Æ¼Ô---Hermit(2004/12/10 07:39:43)


> double near = (double)ptr[1] / (double)0x7fffffff;
> double far = (double)ptr[2] / (double)0x7fffffff;
8086¤¢¤¿¤ê¤Î»þ¤ËÍ­¤Ã¤¿¡¢near ¥Ý¥¤¥ó¥¿ far ¥Ý¥¤¥ó¥¿¼±Ê̻ҤȤ·¤Æ
ǧ¼±¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ê¤Î¤Ç¡¢Ì¾Á°¤òÊѤ¨¤ì¤Ð¤¤¤¤¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£
¤½¤Î¤Þ¤Þ̾Á°¤òÊѤ¨¤Æ¤â¤¤¤¤¤·¡¢
#define ¤·¤Æ far, near ¤òÊ̤Î̾Á°¤ËŸ³«¤·¤Æ¤â¤¤¤¤¤·¡£


¤³¤ÎÅê¹Æ¤Ë¥³¥á¥ó¥È¤¹¤ë

ºï½ü¥Ñ¥¹¥ï¡¼¥É

No.18616

Re:OpenGL¥×¥í¥°¥é¥à
Åê¹Æ¼Ô---¤Ý¤Ø¤§(2004/12/10 07:40:56)


near¤âfar¤â¸Å(¤¤¤Ë¤·¤¨)¤ÎDOS»þÂå¤Î¥­¡¼¥ï¡¼¥É¤Ç¤¹¡£
¼ê¤Ã¼è¤êÁᤤ¤Î¤ÏÊÑ¿ô̾¤òÊѹ¹¤¹¤ë¤³¤È¤Ç¤¹¤Í¡£

>¤È¤¤¤¦¤È¤³¤í¤¬windows¤ÎVC++¤Ç¤Ï¥¨¥é¡¼¤¬¤Ç¤Þ¤¹¡£
>¡ü¡ÖÈóɸ½à¤Î³ÈÄ¥µ¡Ç½¤¬»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤¹ : 'near' ¤Ï¸ß´¹À­¤Î¤¿¤á¤Ë»Ä¡¡¡¡¤µ¤ì¤Æ¤¤¤ë޷ްŽÜްŽÄŽÞ¤Ç¤¹¡£¡×
>¡ü¡Ö 'double' : »ØÄꤵ¤ì¤¿·¿¤Ï¡¢¼±Ê̻ҤÎ̾Á°¤ò»ØÄꤻ¤º¤ËÀë¸À¤µ¤ì¤Æ¡¡¡¡¤¤¤Þ¤¹¡£¡×



¤³¤ÎÅê¹Æ¤Ë¥³¥á¥ó¥È¤¹¤ë

ºï½ü¥Ñ¥¹¥ï¡¼¥É

No.18619

Re:OpenGL¥×¥í¥°¥é¥à
Åê¹Æ¼Ô---¤Õ¤©¤²(2004/12/10 10:07:33)


¤ß¤Ê¤µ¤ó¡¢¤ªÁᤤ¤ªÊÖ»ö¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£
ËÜÅö¤Ë½õ¤«¤ê¤Þ¤·¤¿¡£
°ìÅٻ¤Æ¤ß¤Þ¤¹¡£


¤³¤ÎÅê¹Æ¤Ë¥³¥á¥ó¥È¤¹¤ë

ºï½ü¥Ñ¥¹¥ï¡¼¥É

No.18626

OpenGL¥×¥í¥°¥é¥à¼ÁÌä
Åê¹Æ¼Ô---¤Õ¤©¤²(2004/12/11 11:20:31)


²¿ÅÙ¤â¼ÁÌ䤷¤Æ¤¹¤¤¤Þ¤»¤ó¡£
²¼µ­¤Î¥×¥í¥°¥é¥à¤Ç¤Ï£²Ëç¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò¤Ä¤¯¤ê²óž¤µ¤»¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢£²¤Ä¤Û¤ÉÌäÂ꤬¤¢¤ê¤Þ¤¹¡£ÆÈ³Ø¤ÇÊÙ¶¯¤·¤Æ¤¤¤ë¤Î¤Ç¤Ê¤«¤Ê¤«ÌäÂ꤬²ò·è¤Ç¤­¤Ê¤¤¤¿¤áǺ¤ó¤Ç¤¤¤Þ¤¹¡£
­¡¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤¿½Ö´Ö¤Ë²óž¤¬µ¯¤³¤Ã¤Æ¤·¤Þ¤¦¤Î¤òľ¤·¤Æ¤â¤é¤¤¤¿¡¡¤¤¤Î¤Ç¤¹¡£
­¢¤æ¤¯¤æ¤¯¤Ï¡¢¤³¤Î£²¤Ä¤Î¥×¥í¥°¥é¥à¤ò¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¯¥ê¥Ã¥¯¤·¤¿¤é²ó¡¡Å¾¤¹¤ë¤è¤¦¤Ë¤·¤¿¤¤¤Î¤Ç¤¹¤¬º£¤Î¥×¥í¥°¥é¥à¤Î½ñ¤­Êý¤Ç¤ÏÆñ¤·¤¤¤Ç¤¹¡©
¡¡Î㤨¤Ð¡¢¥ª¥Ö¥¸¥§¥¯¥È¤òÆó¸Äforʸ¤Ç½ñ¤¤¤Æ¤¤¤ë¤Î¤È¤«¤Ê¤É¡£

#include <stdio.h>
#include <GL/glut.h>
#include <stdlib.h>
GLdouble vertex[][3] = {
{ -0.5, 0.0, 0.0 },
{ 0.5, 0.0, 0.0 },
{ 0.5, 0.0, 2.0 },
{ -0.5, 0.0, 2.0 },
};
GLdouble color[][3] = {
{ 1.0, 0.0, 0.0 },
{ 0.0, 1.0, 0.0 },
{ 0.0, 0.0, 1.0 },
{ 1.0, 1.0, 0.0 },
{ 1.0, 0.0, 1.0 },
{ 0.0, 1.0, 1.0 }
};
GLdouble normal[][3] = {
{ 0.0, 0.0,-1.0 },
{ 1.0, 0.0, 0.0 },
{ 0.0, 0.0, 1.0 },
{-1.0, 0.0, 0.0 },
{ 0.0,-1.0, 0.0 },
{ 0.0, 1.0, 0.0 }
};

int b,k,j;
GLfloat light0pos[] = { 5.0, 3.0, 5.0, 1.0 };
GLfloat light1pos[] = { 5.0, 3.0, 0.0, 1.0 };
GLfloat green[] = { 0.0, 1.0, 0.0, 1.0 };
///////////**ºÆÉÁ²è**/////////////
void idle(void)
{
glutPostRedisplay();
}
//////////////**ʪÂÎ**//////////////
void display(void)
{
int i=1,j,k;
static int r = 0;
while(i){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslated(-0.8, 0.0, 0.0);
gluLookAt(2.5, 10.0, 20.0, 2.5, 1.0, 0.0, 0.0, 3.0, 1.0);
glLightfv(GL_LIGHT0, GL_POSITION, light0pos);
glLightfv(GL_LIGHT1, GL_POSITION, light1pos);
for(j = 0; j < 6; ++j){
glColor3dv(color[j]);
glNormal3dv(normal[j]);
}
for(k = 1; k <= 2; k++){
glPushMatrix();
glRotated((double)r, 0.0, 0.0, 0.5);
glBegin(GL_QUADS);
glVertex3dv(vertex[0]);
glVertex3dv(vertex[1]);
glVertex3dv(vertex[2]);
glVertex3dv(vertex[3]);
glEnd();

glBegin(GL_QUADS);
glVertex3dv(vertex[0]);
glVertex3dv(vertex[3]);
glVertex3dv(vertex[2]);
glVertex3dv(vertex[1]);
glEnd();
glPopMatrix();
glTranslated(1.5, 0.0, 0.0);
}
glutSwapBuffers();
/* °ì¼þ²ó¤Ã¤¿¤é²óž³Ñ¤ò 0 ¤ËÌ᤹ */
++r;
if (r >= 180){
r = 0;
i = 0;
}
}
}
//////////////**¥µ¥¤¥ºÊѹ¹**////////////////
void resize(int w, int h)
{
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(15.0, (double)w / (double)h, 1.0, 100.0);
glMatrixMode(GL_MODELVIEW);
}
//////////////////**¥Þ¥¦¥¹ÀßÄê**////////////////////
void mouse(int button, int state, int x, int y)
{
switch (button) {
case GLUT_LEFT_BUTTON:
if (state == GLUT_DOWN) {
/* ¥¢¥Ë¥á¡¼¥·¥ç¥ó³«»Ï */
glutIdleFunc(idle);
}
else {
/* ¥¢¥Ë¥á¡¼¥·¥ç¥óÄä»ß */
glutIdleFunc(NULL);
}
break;
case GLUT_RIGHT_BUTTON:
break;
default:
break;
}
}
///////////////**½é´ü²½**/////////////////////////
void init(void)
{
glShadeModel(GL_SMOOTH);
glClearColor(1.0, 1.0, 1.0, 0.0);
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
glCullFace(GL_FRONT);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHT1);
glLightfv(GL_LIGHT1, GL_DIFFUSE, green);
glLightfv(GL_LIGHT1, GL_SPECULAR, green);
}
/////////////////////**main**////////////////////////
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(1000,600);
glutCreateWindow(argv[0]);
glutDisplayFunc(display);
glTranslated(1.5, 0.0, 0.0);
glutReshapeFunc(resize);
glutMouseFunc(mouse);
init();
glutMainLoop();
return 0;
}



¤³¤ÎÅê¹Æ¤Ë¥³¥á¥ó¥È¤¹¤ë

ºï½ü¥Ñ¥¹¥ï¡¼¥É

No.18640

¼ÁÌä
Åê¹Æ¼Ô---¤Õ¤©¤²(2004/12/12 15:11:15)


¤É¤Ê¤¿¤«¤ï¤«¤é¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£¤ª´ê¤¤¤·¤Þ¤¹¡£


¤³¤ÎÅê¹Æ¤Ë¥³¥á¥ó¥È¤¹¤ë

ºï½ü¥Ñ¥¹¥ï¡¼¥É

No.18641

Re:¼ÁÌä
Åê¹Æ¼Ô---¤¢¤«¤Þ(2004/12/12 16:32:47)


>¤É¤Ê¤¿¤«¤ï¤«¤é¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£¤ª´ê¤¤¤·¤Þ¤¹¡£
¤È¤ê¤¢¤¨¤º¥½¡¼¥¹¤òźÉÕ¤¹¤ë¤È¤­¤Ï¡ÖHTMLÊÑ´¹¥Ä¡¼¥ë¡×¤Ç»ú²¼¤²¤¹¤ë¤ÈÊÖÅúΨ¤Ï¾å¤¬¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤Í¡£

¤¢¤È¡¢·Ç¼¨ÈĤǡ֤ª´ê¤¤¤·¤Þ¤¹¡×¤À¤±¤Î¥ì¥¹¤ÏÁ´Á³°ÕÌ£¤Ê¤¤¤È»×¤¤¤Þ¤¹¡£
¸«¤Æ¤ë¤È¤­¤Ï¸«¤Æ¤ë¤·¡¢¸«¤Æ¤Ê¤¤¤È¤­¤Ï¸«¤Æ¤Ê¤¤¤Î¤¬·Ç¼¨ÈĤǤ¹¤«¤é¡£
¤¢¡¢µ­»ö¾å¤²¤Î¸ú²Ì¤Ï¤¢¤ë¤Î¤«¡£


¤³¤ÎÅê¹Æ¤Ë¥³¥á¥ó¥È¤¹¤ë

ºï½ü¥Ñ¥¹¥ï¡¼¥É

No.18642

Re:¼ÁÌä
Åê¹Æ¼Ô---¤Õ¤©¤²(2004/12/12 17:03:07)


¤¢¤«¤Þ¤µ¤ó¡¢¤´»ØÅ¦¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£
¥Ä¡¼¥ë¤Î»È¤¤Êý¤¬º£¤Ò¤È¤Ä¤ï¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£
¿½¤·Ìõ¤¢¤ê¤Þ¤»¤ó¡£


¤³¤ÎÅê¹Æ¤Ë¥³¥á¥ó¥È¤¹¤ë

ºï½ü¥Ñ¥¹¥ï¡¼¥É

No.18645

Re:¼ÁÌä
Åê¹Æ¼Ô---RAPT(2004/12/12 20:01:10)


OpenGL¤ÏÃΤé¤Ê¤¤¤¬¡¢½é²ó¤Î¤ß½èÍý¤ò¤·¤¿¤¯¤Ê¤¤¤Î¤Ê¤é¡¢¥Õ¥é¥°¤Ç¤â
ÍѰդ·¤ÆÈ½Äꤹ¤ì¤Ð¤è¤¤¤Î¤Ç¤Ï¡©

¤½¤ì¤«¤é¡¢
int i = 1;
while(i){
  if( ... ){
    i = 0;
  }
}
¤Ã¤Æ¡¢
for(;;){
  if( ... ){
    break;
  }
}
¤ÎÊý¤¬¤¤¤¤¤«¤â¡£



¤³¤ÎÅê¹Æ¤Ë¥³¥á¥ó¥È¤¹¤ë

ºï½ü¥Ñ¥¹¥ï¡¼¥É

No.18670

Re:¼ÁÌä
Åê¹Æ¼Ô---¤Õ¤©¤²(2004/12/13 15:45:40)


¤´»ØÅ¦¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£
»²¹Í¤Ë¤µ¤»¤Æ¤¤¤¿¤À¤­¤Þ¤¹¡£


¤³¤ÎÅê¹Æ¤Ë¥³¥á¥ó¥È¤¹¤ë

ºï½ü¥Ñ¥¹¥ï¡¼¥É

´ÉÍý¼ÔÍÑ¥á¥Ë¥å¡¼    ¥Ä¥ê¡¼¤ËÌá¤ë    ·ÈÂÓÍÑURL    ¥Û¡¼¥à¥Ú¡¼¥¸    ¥í¥°    ¥¿¥°°ìÍ÷