91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-02
  • 語言: 其他
  • 標簽: bezier曲線??

資源簡介

利用傳入參數給定的控制頂點構成的頂點序列畫出bezier曲線

資源截圖

代碼片段和文件信息

#include?
#include
#include?
#define?N?4?//控制頂點個數

double?t;//參數t
typedef?struct{
GLfloat?x?y;
}point;
int?M?=?0;
point?a[N];

int?multiply_n(int?m?int?n)//求出二項式系數
{
int?i?j?a;
if?(m?!=?0)
{
a?=?1;
for?(i?=?m?+?1;?i?<=?n;?i++)
{
a?=?a*i;
}
for?(j?=?1;?j?<=?n?-?m;?j++)
{
a?=?a?/?j;
}
return?a;
}
else{
return?1;
}
}
double?bernstein(int?m?int?n?double?t1)?//基函數bernstein調用函數multiply_n算出Bi?n(t)
{
int?i?j;
double?sum;
sum?=?multiply_n(m?n);
for?(i?=?1;?i?<=?m;?i++)
{
sum?=?sum*t1;
}
for?(j?=?1;?j?<=?n?-?m;?j++)
{
sum?=?sum*(1?-?t1);
}
return?sum;
}
void?myinit()
{
glClearColor(0.0?0.0?0.0?0.0);
glColor3f(1.0f?0.0?0.0);
glPointSize(4.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0?640?0.0?480.0);
}
void?drawDot(point?x)//畫出點
{
glBegin(GL_POINTS);
glVertex2f(x.x?x.y);
glEnd();
glFlush();
}
void?drawLine(point?v?point?g)//連接兩點畫直線
{
glBegin(GL_LINES);
glVertex2f(v.x?v.y);
glVertex2f(g.x?g.y);
glEnd();
glFlush();
}
point?bezier(int?n?double?t1)//求出bezier曲線上參數t1對應點
{
point?p1;
p1.x?=?0.0;
p1.y?=?0.0;
for?(int?i?=?0;?i?<=?n;?i++)
{
p1.x?+=?bernstein(i?n?t1)*

評論

共有 條評論