Luxophia

Форк
0
/
LUX.Curve.T2.D2.pas 
131 строка · 4.3 Кб
1
unit LUX.Curve.T2.D2;
2

3
interface //#################################################################### ■
4

5
uses LUX,
6
     LUX.D1,
7
     LUX.D2, LUX.D2.V4, LUX.D2.M4,
8
     LUX.D4,
9
     LUX.Curve.T1.D1, LUX.Curve.T1.D2,
10
     LUX.Curve.T2.D1;
11

12
//type //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【型】
13

14
     //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【レコード】
15

16
     //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【クラス】
17

18
//const //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【定数】
19

20
//var //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【変数】
21

22
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【ルーチン】
23

24
function Bezie4( const Ps_:TSingle2DM4; const T_:TSingle2D ) :TSingle2D; overload;
25
function Bezie4( const Ps_:TDouble2DM4; const T_:TDouble2D ) :TDouble2D; overload;
26
function Bezie4( const Ps_:TdSingle2DM4; const T_:TdSingle2D ) :TdSingle2D; overload;
27
function Bezie4( const Ps_:TdDouble2DM4; const T_:TdDouble2D ) :TdDouble2D; overload;
28

29
implementation //############################################################### ■
30

31
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【レコード】
32

33
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【クラス】
34

35
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【ルーチン】
36

37
function Bezie4( const Ps_:TSingle2DM4; const T_:TSingle2D ) :TSingle2D;
38
var
39
   WX, WY :TSingle4D;
40
   P1, P2, P3, P4 :TSingle2D;
41
begin
42
     Bezie4( T_.X, WX );
43
     Bezie4( T_.Y, WY );
44

45
     with WX do
46
     begin
47
          P1 := _1 * Ps_._11 + _2 * Ps_._12 + _3 * Ps_._13 + _4 * Ps_._14;
48
          P2 := _1 * Ps_._21 + _2 * Ps_._22 + _3 * Ps_._23 + _4 * Ps_._24;
49
          P3 := _1 * Ps_._31 + _2 * Ps_._32 + _3 * Ps_._33 + _4 * Ps_._34;
50
          P4 := _1 * Ps_._41 + _2 * Ps_._42 + _3 * Ps_._43 + _4 * Ps_._44;
51
     end;
52

53
     with WY do
54
     begin
55
          Result := _1 * P1 + _2 * P2 + _3 * P3 + _4 * P4;
56
     end;
57
end;
58

59
function Bezie4( const Ps_:TDouble2DM4; const T_:TDouble2D ) :TDouble2D;
60
var
61
   WX, WY :TDouble4D;
62
   P1, P2, P3, P4 :TDouble2D;
63
begin
64
     Bezie4( T_.X, WX );
65
     Bezie4( T_.Y, WY );
66

67
     with WX do
68
     begin
69
          P1 := _1 * Ps_._11 + _2 * Ps_._12 + _3 * Ps_._13 + _4 * Ps_._14;
70
          P2 := _1 * Ps_._21 + _2 * Ps_._22 + _3 * Ps_._23 + _4 * Ps_._24;
71
          P3 := _1 * Ps_._31 + _2 * Ps_._32 + _3 * Ps_._33 + _4 * Ps_._34;
72
          P4 := _1 * Ps_._41 + _2 * Ps_._42 + _3 * Ps_._43 + _4 * Ps_._44;
73
     end;
74

75
     with WY do
76
     begin
77
          Result := _1 * P1 + _2 * P2 + _3 * P3 + _4 * P4;
78
     end;
79
end;
80

81
function Bezie4( const Ps_:TdSingle2DM4; const T_:TdSingle2D ) :TdSingle2D;
82
var
83
   WX, WY :TdSingle4D;
84
   P1, P2, P3, P4 :TdSingle2D;
85
begin
86
     Bezie4( T_.X, WX );
87
     Bezie4( T_.Y, WY );
88

89
     with WX do
90
     begin
91
          P1 := _1 * Ps_._11 + _2 * Ps_._12 + _3 * Ps_._13 + _4 * Ps_._14;
92
          P2 := _1 * Ps_._21 + _2 * Ps_._22 + _3 * Ps_._23 + _4 * Ps_._24;
93
          P3 := _1 * Ps_._31 + _2 * Ps_._32 + _3 * Ps_._33 + _4 * Ps_._34;
94
          P4 := _1 * Ps_._41 + _2 * Ps_._42 + _3 * Ps_._43 + _4 * Ps_._44;
95
     end;
96

97
     with WY do
98
     begin
99
          Result := _1 * P1 + _2 * P2 + _3 * P3 + _4 * P4;
100
     end;
101
end;
102

103
function Bezie4( const Ps_:TdDouble2DM4; const T_:TdDouble2D ) :TdDouble2D;
104
var
105
   WX, WY :TdDouble4D;
106
   P1, P2, P3, P4 :TdDouble2D;
107
begin
108
     Bezie4( T_.X, WX );
109
     Bezie4( T_.Y, WY );
110

111
     with WX do
112
     begin
113
          P1 := _1 * Ps_._11 + _2 * Ps_._12 + _3 * Ps_._13 + _4 * Ps_._14;
114
          P2 := _1 * Ps_._21 + _2 * Ps_._22 + _3 * Ps_._23 + _4 * Ps_._24;
115
          P3 := _1 * Ps_._31 + _2 * Ps_._32 + _3 * Ps_._33 + _4 * Ps_._34;
116
          P4 := _1 * Ps_._41 + _2 * Ps_._42 + _3 * Ps_._43 + _4 * Ps_._44;
117
     end;
118

119
     with WY do
120
     begin
121
          Result := _1 * P1 + _2 * P2 + _3 * P3 + _4 * P4;
122
     end;
123
end;
124

125
//############################################################################## □
126

127
initialization //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 初期化
128

129
finalization //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 最終化
130

131
end. //######################################################################### ■
132

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.