求VC画Bezier曲线的代码,要求全。追加高分!!邮箱wangqi1999@gmail.com。。发送者请留下你的百度大名,追加高分。
功能:在屏幕上随便点几个点,然后自动生成Bezier曲线。拜托了。急啊。
求VC画Bezier曲线的代码
答案:2 悬赏:70 手机版
解决时间 2021-04-26 23:30
- 提问者网友:轻浮
- 2021-04-26 08:42
最佳答案
- 五星知识达人网友:笑迎怀羞
- 2020-04-29 06:28
给你发了邮件
你先看一下效果 满意后给我分数
然后我把完整代码给你
你先看一下效果 满意后给我分数
然后我把完整代码给你
全部回答
- 1楼网友:廢物販賣機
- 2020-05-14 20:23
您好!
不知道这都对你有没有帮助
procedure bezier(a:plotarray;
maxcontrpoints:integer;
var b:plotarray;
var maxintpoints:integer);
const maxcontrolpoints=25;
type combiarray=array [0..maxcontrolpoints] of real;
var n:integer;
contrpoint,intpoint:integer;
t,sumx,sumy,prod,deltat,quot:real;
combi:combiarray;
begin
maxcontrpoints:=maxcontrpoints-1;
deltat:=1.0/(maxintpoints-1);
combi[0]:=1;
combi[maxcontrpoints]:=1;
for n:=0 to maxcontrpoints-2 do
combi[n+1]:=combi[n]*(maxcontrpoints-n)/(n+1);
for intpoint:=1 to maxintpoints do
begin
t:=(intpoint-1)*deltat;
if t<=0.5 then
begin
prod:=1.0-t;
quot:=prod;
for n:=1 to maxcontrpoints-1 do prod:=prod*quot;
quot:=t/quot;
sumx:=a[maxcontrpoints+1].x;
sumy:=a[maxcontrpoints+1].y;
for n:=maxcontrpoints downto 1 do
begin
sumx:=combi[n-1]*a[n].x+quot*sumx;
sumy:=combi[n-1]*a[n].y+quot*sumy;
end;
end
else
begin
prod:=t;
quot:=prod;
for n:=1 to maxcontrpoints-1 do prod:=prod*quot;
quot:=(1-t)/quot;
sumx:=a[1].x;
sumy:=a[1].y;
for n:=1 to maxcontrpoints do
begin
sumx:=combi[n]*a[n+1].x+quot*sumx;
sumy:=combi[n]*a[n+1].y+quot*sumy;
end;
end;
b[intpoint].x:=sumx*prod;
b[intpoint].y:=sumy*prod;
end;
end;
有问题请发百度消息给我,谢谢啦。。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯