![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Delphi & 3D
QQ23115269
这个作者很懒,什么都没留下…
展开
-
Delphi 两条直线的交点
function g2dCrossOver(const a,b,c,d:pTd2dVal; Out o:Td2dVal):Integer;var denominator:Extended;begin Result := -1; //无交点,返回-1 // 如果分母为0 则平行或共线, 不相交 denominator := (b.y - a.y)*(d.x - c.x) - (a.x - b.x)*(c.y - d.y); if (denominator = 0) then Exit;...原创 2021-09-03 02:32:53 · 298 阅读 · 0 评论 -
delphi 点在圆内
//到圆心的距离 是否大于半径。//半径是R (x,y)点圆心,任意一点P(x1,y1)//(x-x1)*(x-x1)+(y-y1)*(y-y1)>R*R 那么在圆外 反之在圆内function XYinRing(x1,y1,x,y,r:Integer): Boolean;begin Result := (x-x1)*(x-x1) + (y-y1)*(y-y1) > R*R;end;...原创 2021-06-22 21:50:37 · 127 阅读 · 0 评论 -
3D BEZEIR曲线路径(DELPHI版本)
3DBEZEIR曲线路径(DELPHI版本),转载,原博主链接地址已经失效unit VRPath;{ TODO :路径处理包括Bezier }interfaceuses DXCommon,VRCommon,VRModelObject,Direct3D9,D3DX9,Windows,VRMaterial;const PathFVF= D3DFVF_XYZ or D3DFVF_DIFFUSE; Framecy =1.0; //点的采样频率Type TPathV...原创 2021-04-05 16:17:42 · 220 阅读 · 0 评论 -
Dephi字符转Html字符串
//推荐使用function StrToHtml(str: string): string;内循环仅使用1次。相比StringReplace,使用[rfReplaceAll]是一个满循环。function StrToHtml(str: string): string;var i : integer;begin Result:= ''; for i:= 1 to Length(str) do case str[i] of '&': Result := Resu...原创 2020-09-21 10:31:58 · 104 阅读 · 0 评论 -
串口自动感应接收到的数据
关键在于WaitCommEvent函数procedure TgSerialPortThread.Execute;var dwError: Dword; tmps:String; p2:Integer; lpEvtMask: DWORD;begin p2 := 0; FillChar( OverLap, Sizeof(TOverlapped), 0 ); OverLap.hEvent := CreateEvent( nil, True, False, nil);...原创 2020-07-12 14:02:50 · 226 阅读 · 0 评论 -
检测是否存在u盘盘符
主要的功能函数如下:uses uSelectDriveRemovable;{$R *.dfm}procedure TForm20.FormCreate(Sender: TObject);begin btn_toSD.Enabled := ChkDriveRemovable;end;//u盘的 插入和删除windows会给所有的程序发出WM_DEVICECHANGE 信息//这句放在private里面//procedure WMDeviceChange(var Msg: TMessa.原创 2020-07-12 13:58:37 · 192 阅读 · 0 评论 -
OpenGL和D3D的灯光法线计算和渲染
法线计算函数原来总觉得这个公式是错的。渲染出来的图感觉是烂的,事实上的确是烂图,不过公式却是对的,只是还少了最后一步,我网上找了3个多月,没人给出答案,现在我找到点碎玉,抛出了希望引得一些砖头。。function g3NormalV(p1, p2, p3:Tg3DVector3d):Tg3DVector3d;begin Result.x := (p2.y-p1.y)*(p3.z-p1.z) - (p2.z-p1.z)*(p3.y-p1.y); Result.y := (p2.z-p...原创 2020-05-12 11:33:39 · 226 阅读 · 0 评论 -
DELPHI计算点与圆的切点坐标
//p:圆外点; center:圆心; radius:半径; q:1=(切点1坐标)、2=(切点2坐标)function gTangentPoint(p,center:TPoint; radius:Double; q:Integer = 1):TPoint;var d:TPoint; r1, r2, r3, d1: Double;begin d.X := p.X - ce...原创 2020-05-07 23:12:37 · 491 阅读 · 0 评论 -
DELPHI根据三个点计算夹角
根据三个点计算夹角//C为中心点,A为起点,B为止点,求ACB的夹角function gGetAngle(A,B,C :TPoint) :Double;var x,y,x1,y1,x2,y2: Double;beginx1 := A.x - C.x;y1 := A.y - C.y;x2 := B.x - C.x;y2 := B.y - C.y;x := x1 ...原创 2020-05-07 20:08:52 · 510 阅读 · 0 评论 -
DELPHI点在多边形内算法
DELPHI点在多边形内算法——判断一个点是否在一个复杂多边形的内部//多边形数组duoX:Array of TPoint;//判断函数function gPointIn(p :TPoint) :Boolean;var i,j:Integer; p1,p2:TPoint;beginResult := False;if(High(duoX) < 2) then E...原创 2020-05-07 19:34:19 · 465 阅读 · 0 评论