//鼠标 *** 作的旋转立方体
#include <mathh>
#include <GL/gluth>
#include <stdlibh>
int winWidth, winHeight;
float angle = 00, axis[3], trans[3];
bool trackingMouse = false;
bool redrawContinue = false;
bool trackballMove = false;
GLfloat vertices[][3] = {
{-10,-10,-10}, {10,-10,-10}, {10,10,-10}, {-10,10,-10},
{-10,-10,10}, {10,-10,10}, {10,10,10}, {-10,10,10}
};
GLfloat colors[][3] = {
{00,00,00}, {10,00,00}, {10,10,00}, {00,10,00},
{00,00,10}, {10,00,10}, {10,10,10}, {00,10,10}
};
void polygon(int a, int b, int c , int d, int face)
{
glBegin(GL_POLYGON);
glColor3fv(colors[a]);
glVertex3fv(vertices[a]);
glColor3fv(colors[b]);
glVertex3fv(vertices[b]);
glColor3fv(colors[c]);
glVertex3fv(vertices[c]);
glColor3fv(colors[d]);
glVertex3fv(vertices[d]);
glEnd();
}
void colorcube(void)
{
polygon(1,0,3,2,0);
polygon(3,7,6,2,1);
polygon(7,3,0,4,2);
polygon(2,6,5,1,3);
polygon(4,5,6,7,4);
polygon(5,4,0,1,5);
}
float lastPos[3] = {00F, 00F, 00F};
int curx, cury;
int startX, startY;
void trackball_ptov(int x, int y, int width, int height, float v[3])
{
float d, a;
v[0] = (20Fx - width) / width;
v[1] = (height - 20Fy) / height;
d = (float) sqrt(v[0]v[0] + v[1]v[1]);
v[2] = (float) cos((31415926/20F) ((d < 10F) d : 10F));
a = 10F / (float) sqrt(v[0]v[0] + v[1]v[1] + v[2]v[2]);
v[0] = a;
v[1] = a;
v[2] = a;
}
void mouseMotion(int x, int y)
{
float curPos[3], dx, dy, dz;
trackball_ptov(x, y, winWidth, winHeight, curPos);
if(trackingMouse)
{
dx = curPos[0] - lastPos[0];
dy = curPos[1] - lastPos[1];
dz = curPos[2] - lastPos[2];
if (dx || dy || dz) {
angle = 900F sqrt(dxdx + dydy + dzdz);
axis[0] = lastPos[1]curPos[2] - lastPos[2]curPos[1];
axis[1] = lastPos[2]curPos[0] - lastPos[0]curPos[2];
axis[2] = lastPos[0]curPos[1] - lastPos[1]curPos[0];
lastPos[0] = curPos[0];
lastPos[1] = curPos[1];
lastPos[2] = curPos[2];
}
}
glutPostRedisplay();
}
void startMotion(int x, int y)
{
trackingMouse = true;
redrawContinue = false;
startX = x; startY = y;
curx = x; cury = y;
trackball_ptov(x, y, winWidth, winHeight, lastPos);
trackballMove=true;
}
void stopMotion(int x, int y)
{
trackingMouse = false;
if (startX != x || startY != y) {
redrawContinue = true;
} else {
angle = 00F;
redrawContinue = false;
trackballMove = false;
}
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
if (trackballMove)
{
glRotatef(angle, axis[0], axis[1], axis[2]);
}
colorcube();
glutSwapBuffers();
}
void mouseButton(int button, int state, int x, int y)
{
if(button==GLUT_RIGHT_BUTTON) exit(0);
if(button==GLUT_LEFT_BUTTON) switch(state)
{
case GLUT_DOWN:
y=winHeight-y;
startMotion(x,y);
break;
case GLUT_UP:
stopMotion(x,y);
break;
}
}
void myReshape(int w, int h)
{
glViewport(0, 0, w, h);
winWidth = w;
winHeight = h;glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if (w <= h)
glOrtho(-20, 20, -20 (GLfloat) h / (GLfloat) w,
20 (GLfloat) h / (GLfloat) w, -100, 100);
else
glOrtho(-20 (GLfloat) w / (GLfloat) h,
20 (GLfloat) w / (GLfloat) h, -20, 20, -100, 100);
glMatrixMode(GL_MODELVIEW);
}
void spinCube()
{
if (redrawContinue) glutPostRedisplay();
}
int main(int argc, char argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(500, 500);
glutCreateWindow("colorcube");
glutReshapeFunc(myReshape);
glutDisplayFunc(display);
glutIdleFunc(spinCube);
glutMouseFunc(mouseButton);
glutMotionFunc(mouseMotion);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-20, 20, -20, 20, -20, 20);
glMatrixMode(GL_MODELVIEW);
glutMainLoop();
}
根据相关规章制度,企业环评公示可以在政府网站、行业网站或者地方门户网站、报纸、媒体上进行公示。当前在政府网站、报纸和媒体公信力是较强,但是公示流程复杂,报纸和媒体还会收取高额的费用。在不影响公示的情况下,可以到行业网站上公示,自行注册、自行发布,几分钟就可以完成公示,和其他官方的网站或者媒体有同样的效力。国内公示比较多的网站如,环评爱好者、环评论坛、易环评、第一环评等网站,前两者为论坛,后两者为行业网站登报可以直接在手机支付宝或者微信小程序上 *** 作,在支付宝首页搜:跑政通,里面省级市级报纸都有价格很详细,可以根据自己的情况选报纸。价格从几十元到几百元不等。可以加速办理有很多相关信息。。
《万族之劫》百度网盘txt最新全集下载:
链接:> 提取码:zmkq
简介:作者:老鹰吃小鸡,安平历350年。大夏府,南元城。苏家。苏宇一进家门便闻到了菜香味,丢下书包,走到餐桌前,随手拣起一块红烧肉扔进嘴里。一边咀嚼着,苏宇一边看向厨房含糊道:“爸,明天换个汤,天天吃肉也不腻得慌。
返回的是个json,
给你个思路,自己解决下,做不了在追们问:
1、需要用eval函数将返回的串转化成可用的strig串,eval(data),但是因为原串里面是以{}开始和结束的,会被认为是可执行方法,因此需要加上()包围起来,var jsonobj=eval("("+data+")"),然后再alert("ID:" + jsonobjid + "\nName:" + jsonobjtime);就能正常显示了
2、获取的时候就直接表示返回的是json格式,用$getJSON代替$get,其他代码不变,也能正常获取。
以上就是关于求glutMotionFunc函数应用实例 一个简单的小程序即可全部的内容,包括:求glutMotionFunc函数应用实例 一个简单的小程序即可、公路改线段工程出完环评公告是不是就快开工建设了、求 万族之劫 小说 百度云资源,谢谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)