📄 unitypes.~pas
字号:
unit unitypes
interface
uses
Math, Windows, Forms, SysUtils, Variants, Classes, Graphics;
{
const
Pi_1: extended = Pi;
Pi_1_2: extended = Pi / 2;
Pi_3_2: extended = Pi * 3 / 2;
Pi_2: extended = Pi * 2;
}
type
TLabColor = record
L, a, b: longint;
end;
TLabColorS = record
L, a, b: extended;
end;
TSingleLabColorArray = array of TLabColor;
TDoubleLabColorArray = array of array of TLabColor;
TSingleMarkArray = array of byte;
TDoubleMarkArray = array of array of byte;
TComplexNumber = record
RealPart, ImaginaryPart: extended;
end;
TComplexNumberArray = array of TComplexNumber;
TPointInfo = record
Info: TPoint;
w: Extended;
Marked: boolean;
Index: longint;
GrayColor: longint;
end;
TSinglePointInfoArray = array of TPointInfo;
TPointModel = record
Data: TSinglePointInfoArray;
AvgS: Extended;
Count, w, AvgGray: longint;
end;
TModelSets = record
Examples: array of TPointModel;
Count: longint;
end;
TArea = record
Center, P1, P2, P3, P4: TPoint;
ObjWidth, ObjHeight, RealWidth, RealHeight, Index: longint;
Radio, w: extended;
end;
TBFS = record
X, Y, Index: longint;
end;
TSingleBFSArray = array of TBFS;
TSingleLongintArray = array of longint;
TDoubleLongintArray = array of array of longint;
TSingleBooleanArray = array of Boolean;
TDoubleBooleanArray = array of array of Boolean;
TSingleExtendedArray = array of extended;
TDoubleExtendedArray = array of array of extended;
function Dist(s1, s2: TPoint): extended;
//function ArcTanEx(s1, s2: longint): extended;
function AbsDist(s1, s2: TPoint): longint;
function SqrDist(s1, s2: TPoint): longint;
implementation
function Dist(s1, s2: TPoint): extended;
begin
Result := sqrt(sqr(s1.X - s2.X) + sqr(s1.Y - s2.Y));
end;
function AbsDist(s1, s2: TPoint): longint;
begin
Result := abs(s1.X - s2.X) + abs(s1.Y - s2.Y);
end;
function SqrDist(s1, s2: TPoint): longint;
begin
Result := sqr(s1.X - s2.X) + sqr(s1.Y - s2.Y);
end;
{
function ArcTanEx(s1, s2: longint): extended;
var
Return: extended;
begin
Return := Pi_1_2;
if s2 = 0 then
if s1 >= 0 then Return := Pi_1_2 else Return := Pi_3_2
else
if (s2 > 0) then
if (s1 > 0) then Return := ArcTan(s1 / s2) else Return := Pi_2 - ArcTan(-s1 / s2)
else
if (s1 < 0) then Return := ArcTan(s1 / s2) + Pi_1 else Return := Pi_1 - ArcTan(-s1 / s2);
Result := Return;
end;
}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -