各位大虾:
帮帮忙拉,小弟我作毕业设计 ,如何实现画贝塞尔曲线曲面亚!!
帮帮忙拉,小弟我作毕业设计 ,如何实现画贝塞尔曲线曲面亚!!
解决方案 »
- 这个编码怎么解码啊。今天的抽
- 问个弱弱的问题:使用DELPHI6在win98下开发,现在放到2000下运行,应该没问题吧?
- 想学习一下3层结构的数据库系统,请高手不吝赐教,谢谢~!
- 没分了,求救呀?怎么样在没有对话框的前提下创建一个新的拔号连接?
- Delphi is nothing comparing to Java!!!!!!
- quickreport怎么预览不了.
- 我也问一个关于数据库登陆输入密码提示的问题,希望得到大家的帮助!
- 如何使当按下KEYDOWN事件后必须执行KEYUP事件,就是说KEYDOWN不能连续执行?!急!!
- 我只想知道怎样获得当前游览器的url 高分大放送
- 十六进制数如何定义为常量?
- delphi有几个版本?
- 下面的有什么问题,帮帮忙,救命呀
a :array [0..3] of TPoint;
begin
a[0].x :=10;
a[0].y :=10;
a[1].x :=50;
a[1].y :=40;
a[2].x :=80;
a[2].y :=90;
a[3].x :=200;
a[3].y :=150;
Canvas.PolyBezier(@a[0]);
end;
是在TChart里分段绘制Bezier的,每段四个控制点
参数1:所有的控制点坐标
参数2:插值数
type
TXYValue =record
X, Y :Double; end; procedure Bezier(CtrlPoints :array of TXYValue; const Seg :Integer=20);
var
T,
T1 ,
T2,
T3,
T3_1 : Double;
P :TXYValue;
I ,Index,
BezierCount ,
Step :Integer;
begin
BezierCount := (Length(CtrlPoints)-1) div 3;
if BezierCount >0 then
begin
for Index :=0 to BezierCount-1 do
begin
for I:=1 to Seg do
begin
T :=I/Seg;
T1 := 1 -T;
T2 := T1 * T1;
T3 := T * T * T;
T3_1 := T1 *T1 *T1;
Step :=Index *3; { 每段的开始点Step与该段的序号Index关系 : Step :=3 *Index }
P.X := T3_1 * CtrlPoints[Step] .X +
3 * T * T2 * CtrlPoints[Step+1].X +
3 * T * T * T1 * CtrlPoints[Step+2].X +
T3 * CtrlPoints[Step+3].X ;
P.Y := T3_1 * CtrlPoints[Step].Y +
3* T * T2 * CtrlPoints[Step+1].Y +
3 *T * T * T1 * CtrlPoints[Step+2].Y +
T3 * CtrlPoints[Step+3].Y ; Chart1.Series[0].AddXY(P.X, P.Y,'',clblack);
end; { for I}
end; {for Index }
end; {if}
Chart1.Update;
end;