#include<GL/glut.h>
#include<stdio.h>
#include<stdlib.h>
#include<vector>
using namespace std;
struct Point
{
int x,y;
};
Point pt[4],bz[11];
vector<Point> vpt;
bool bDraw=0;
int ninput;
void Calcbapoints()
{
float a0,a1,a2,a3,b0,b1,b2,b3;
a0=pt[0].x;
a1=-3*pt[0].x+3*pt[1].x;
a2=3*pt[0].x-6*pt[1].x+3*pt[2].x;
a3=-pt[0].x+3*pt[1].x-3*pt[2].x+pt[3].x;
b0=pt[0].y;
b1=-3*pt[0].y+3*pt[1].y;
b2=3*pt[0].y-6*pt[1].y+3*pt[2].y;
b3=-pt[0].y+3*pt[1].y-3*pt[2].y+pt[3].y;
float t=0;
float dt=0.01;
for(int i=0;t<1.1;t+=0.1,i++)
{
bz[i].x=a0+a1*t+a2*t*t+a3*t*t*t;
bz[i].y=b0+b1*t+b2*t*t+b3*t*t*t;
}
}
void Controlpoint(vector<Point> vpt)
{
glPointSize(5);
for(int i=0;i<vpt.size();i++)
{
glBegin(GL_POINTS);
glColor3f(1.0f,0.0f,0.0f); glVer
图形学实验Bezier曲线生成
最新推荐文章于 2021-05-14 19:55:54 发布
该博客介绍了如何使用OpenGL实现Bezier曲线的绘制。通过定义控制点并计算曲线的各个中间点,然后利用OpenGL的绘图函数展示Bezier曲线。读者可以通过点击鼠标输入控制点,实时观察曲线变化。
摘要由CSDN通过智能技术生成