OpenGL基础

20' 抛物面,法向量

10' 抛物面

#define DELTA 0.1

#define PI2 2*3.14159

double parabolicSurf[36][10][3];

void MakeParabolicSurface()

{

    for (int a = 0; a < 36; a++)

    {

        for (int r = 0; r < 10; r++)

        {

            parabolicSurf[a][r][0] = (DELTA*r)*cos(a*PI2 / 36.0);

            parabolicSurf[a][r][1] = (DELTA*r)*sin(a*PI2 / 36.0);

            parabolicSurf[a][r][2] = (DELTA*r)*(DELTA*r);

        }

    }

}

 

10' 法向量

void Normal(double a[3], double b[3], double c[3], double n[3])

{

    int i;

    double p[3], q[3];

 

    for (i = 0; i < 3; i++)

    {

        p[i] = b[i] - a[i];

        q[i] = c[i] - a[i];

    }

 

    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];

 

    double t = n[0] * n[0] + n[1] * n[1] + n[2] * n[2];

 

    t = sqrt(t);

 

    for (i = 0; i < 3; i++)

        n[i] /= t;

}

20'切平面方程,曲率

切平面方程:高等数学(下)p123—p128

曲率:高等数学(上)p208-p211

20'几何变换,齐次坐标

 

 

例题:

20'名词解释

参数样条曲线

样条是一根富有弹性的细木条或类似物,其两端连接着起固定作用的压铁。通过调整样条两端的压铁可以改变样条的形态,它是手工绘制自由曲线的一种工具。沿着样条绘制的曲线称为样条曲线

贝塞尔曲线的凸包性

贝塞尔基函数

自由曲线

形状比较复杂、不能用二次方程来表示的曲线(曲面)称为自由曲线(曲面),也称为复杂曲线(曲面),通常以三次参数方程来表示。

曲线拟合

给定一个点列,用该点列来构造曲线的方法称为曲线拟合

曲线插值

已知曲线上的一个点列,求曲线上的其他点的方法称为曲线插值

参数多项式曲线

样条曲线可以表示为参数多项式曲线或分段参数多项式曲线。

齐次坐标表示法

所谓齐次坐标表示法就是用n+1维向量表示一个n维向量,即n维空间中的点的位置向量(P1,P2,…Pn)被表示为具有n+1个坐标分量的向量(hP1,hP2,…,hPn,h)。

规范化过程

从平面上点的齐次坐标,经齐次坐标变换,最后转换为平面上点的坐标,这一变换过程称为规范化过程。

直线反走样

通常,我们把由离散量表示连续量引起的失真称为走样;把减少或克服走样效果的技术称为反走样技术,简称反走样。

直线如何反走样

把像素作为一个有限区域,对区域采样来调整像素的亮度,以光顺边界来减小锯齿现象

20' Hermite样条曲线

例题:已知平面上三点P1(0,0),P2(1,1)和P2(2,0),用自由端约束条件计算三次Hermite样条曲线Q(t)使得它拟合点列{P1,P2,P3},并将Q(t)表示为参数序列{0,1,2}上的分段参数多项式函数。

解:由Hermite样条曲线二阶导数的连续性及自由端约束条件得到

解方程组得到

由控制点的坐标得到

由Hermite曲线方程

得到

 

所求曲线方程为:

 

 

posted on 2018-12-01 16:24  kexinxin  阅读(307)  评论(0编辑  收藏  举报

导航