各位大虾:
帮帮忙拉,小弟我作毕业设计 ,如何实现画贝塞尔曲线曲面亚!!
帮帮忙拉,小弟我作毕业设计 ,如何实现画贝塞尔曲线曲面亚!!
解决方案 »
- Dephi做的系统无法登录
- TServerSocket 该控件到哪里去找?
- 如何管理客户端Socket,每个Socket和一个用户ID对应?(通过SockHand能找到响应的Socket吗?不用循环)
- 用过DynamicSkinForm的进来,有问题相问。
- 请问各位大狭---query控件的使用方法 谢谢
- 如何将两个报表在同一张纸上输出?
- 关于用Delphi和SQL建立一个C/S数据库平台的问题
- Delphi中有不同进制之间转换的函数吗?如10进制<->16进制
- mail server
- 关于F1Book的问题,会者不难,不够可再加分!!!
- 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;