zoukankan      html  css  js  c++  java
  • CSU计算机图形学复习

    抛物面的计算(顶点坐标)(不变)(具体原理不理解,背下即可)

    #define PI2 2*3.14159
    #define DELTA_R 0.5
    double surfVertices[36][10][3];
    void ComputerParabolicSurface(){
        for(int a = 0; a<36; a++){    //a表示角度,36等分
            // DELTA是单位长度      (DELTA*r)是极坐标里的r
            // PI2/36.0 是单位角度    a*PI2/36.0 角度转化为弧度
            //填空 三行代码
            surfVertices[a][r][0] = (DELTA*r)*cos(a*PI2/36.0);
            surfVertices[a][r][1] = (DELTA*r)*sis(a*PI2/36.0);
            surfVertices[a][r][2] = (DELTA*r)*(DELTA*r);
        }
    }
    

    法向量的计算(法向量)

    void Normal(double a[3], double b[3], double c[3], double n[3]){
        double p[3],q[3];   //两个矢量
        double len;
        for(int k = 0; k<3; k++){
            // 两个矢量 尾->头
            p[k] = b[k] - a[k];
            q[k] = c[k] - a[k];
        }
    
        //填空
        //计算法向量n   (算叉积,行列式)
        n[0] = p[1]*q[2] - p[2]*q[1];
        n[1] = p[2]*q[0] - p[0]*q[2];
        n[2] = p[0]*q[1] - p[1]*q[0];
    
        //单位化法向量n
        double t = n[0]*n[0] + n[1]*n[1] +n[2]*n[2];   //x^2+y^2+k^2
        t = sqrt(t);   //开平方获得单位矢量的长度
        //获得单位法向量
        for(int i = 0; i<3; i++){
            n[i]/=t;
        }
    }
    

    注册函数

    glutCreatWindow(argv[0]){
        //发出两个消息
        //窗口大小改变,调用reshape:视口变换,做投影,模型视图矩阵变成单位矩阵
        //重绘:调用repaint和display
    
        //向操作系统注册函数 , 做消息映射(如果有...消息,就调用...)
        glutDisplayFunc(display);
        glutReshapeFunc(reshape);
        glutMouseFunc(mouse);
        glutKeyboardFunc(keyboard);
    }
    

    法向量的计算(计算题)

    glClear()函数的作用以及参数的含义

  • 相关阅读:
    HDU 1015(字符运算 **)
    IOS7中自动计算label的宽度和高度的方法
    IOS开发UI基础文本属性Attributes
    IOS开发UI基础UIControl事件
    IOS开发UI基础UIImagePickerController的属性
    IOS开发UI基础UITableView的属性
    IOS开发UI基础UIActivityIndicatorView的属性
    IOS开发UI基础 UIAlertView的属性
    IOS开发UI基础UIImageView属性属性
    IOS开发UI基础 UIDatePicker的属性
  • 原文地址:https://www.cnblogs.com/Acapplella/p/14279455.html
Copyright © 2011-2022 走看看