3
interface //#################################################################### ■
11
//type //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【型】
13
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【レコード】
15
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【クラス】
17
//const //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【定数】
19
//var //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【変数】
21
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【ルーチン】
23
function CatmullRom( const P0_,P1_,P2_,P3_:TSingle2D; const T_:Single ) :TSingle2D; overload;
24
function CatmullRom( const P0_,P1_,P2_,P3_:TDouble2D; const T_:Double ) :TDouble2D; overload;
25
function CatmullRom( const P0_,P1_,P2_,P3_:TdSingle2D; const T_:TdSingle ) :TdSingle2D; overload;
26
function CatmullRom( const P0_,P1_,P2_,P3_:TdDouble2D; const T_:TdDouble ) :TdDouble2D; overload;
28
function Bezie4( const Ps_:TSingle2DV4; const T_:Single ) :TSingle2D; overload;
29
function Bezie4( const Ps_:TDouble2DV4; const T_:Double ) :TDouble2D; overload;
30
function Bezie4( const Ps_:TdSingle2DV4; const T_:TdSingle ) :TdSingle2D; overload;
31
function Bezie4( const Ps_:TdDouble2DV4; const T_:TdDouble ) :TdDouble2D; overload;
33
implementation //############################################################### ■
35
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【レコード】
37
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【クラス】
39
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【ルーチン】
41
function CatmullRom( const P0_,P1_,P2_,P3_:TSingle2D; const T_:Single ) :TSingle2D;
43
Result.X := CatmullRom( P0_.X, P1_.X, P2_.X, P3_.X, T_ );
44
Result.Y := CatmullRom( P0_.Y, P1_.Y, P2_.Y, P3_.Y, T_ );
47
function CatmullRom( const P0_,P1_,P2_,P3_:TDouble2D; const T_:Double ) :TDouble2D;
49
Result.X := CatmullRom( P0_.X, P1_.X, P2_.X, P3_.X, T_ );
50
Result.Y := CatmullRom( P0_.Y, P1_.Y, P2_.Y, P3_.Y, T_ );
53
function CatmullRom( const P0_,P1_,P2_,P3_:TdSingle2D; const T_:TdSingle ) :TdSingle2D;
55
Result.X := CatmullRom( P0_.X, P1_.X, P2_.X, P3_.X, T_ );
56
Result.Y := CatmullRom( P0_.Y, P1_.Y, P2_.Y, P3_.Y, T_ );
59
function CatmullRom( const P0_,P1_,P2_,P3_:TdDouble2D; const T_:TdDouble ) :TdDouble2D;
61
Result.X := CatmullRom( P0_.X, P1_.X, P2_.X, P3_.X, T_ );
62
Result.Y := CatmullRom( P0_.Y, P1_.Y, P2_.Y, P3_.Y, T_ );
65
//------------------------------------------------------------------------------
67
function Bezie4( const Ps_:TSingle2DV4; const T_:Single ) :TSingle2D;
73
with Ws do Result := _1 * Ps_._1
79
function Bezie4( const Ps_:TDouble2DV4; const T_:Double ) :TDouble2D;
85
with Ws do Result := _1 * Ps_._1
91
function Bezie4( const Ps_:TdSingle2DV4; const T_:TdSingle ) :TdSingle2D;
97
with Ws do Result := _1 * Ps_._1
103
function Bezie4( const Ps_:TdDouble2DV4; const T_:TdDouble ) :TdDouble2D;
109
with Ws do Result := _1 * Ps_._1
115
//############################################################################## □
117
initialization //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 初期化
119
finalization //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 最終化
121
end. //######################################################################### ■