大家好!
近日研究用Delphi画平行线,如何在Canvas上已知道任意的折线画出折线平行线,好象有点难度哟!
诚心相求,谢谢!
近日研究用Delphi画平行线,如何在Canvas上已知道任意的折线画出折线平行线,好象有点难度哟!
诚心相求,谢谢!
解决方案 »
- BHO添加HTML代码,求助
- serversocket 如何向已经连接的clientsocket 主动发送消息?
- DSPack 做DV播放器出错!
- 怎样将excel表格导入到Oracle数据库中
- 窗体关闭时的淡出效果是怎么做的?
- Query1.Fields[0].AsString不能返回长度超过256的字符串吗?(在线等待)
- 请问delphi6中的数据结构类封装在哪个单元中?
- writeln()改函数作用是什么?带什么样的参数?readln()呢?
- 我用ClientDataSet操作扩展名为cds的数据文件,怎么进行SQL查询呢?
- 哪位高手知道: 为什么打预览窗口的程序Qrprev.pas汉化后重新编译,并放在LIB文件夹中后,编译的打印程序预览仍是英文? 还有哪里没有做好?
- 请问如何创建多窗体的应用程序?大家不用笑哦--菜鸟
- 打印或者报表的问题
var
i,iCnt:integer;
pts:Array of TPoint;
begin
iCnt:=StrToInt(Edit1.Text);
SetLength(pts,iCnt);
Randomize;
for i:=0 to iCnt-1 do
begin
pts[i].X:=100+Random(300);
pts[i].Y:=100+Random(300);
end;
Canvas.MoveTo(pts[0].x,pts[0].y);
for i:=1 to iCnt-1 do
begin
Canvas.LineTo(pts[i].X,pts[i].Y);
end; Canvas.MoveTo(pts[0].x+10,pts[0].y+10);
for i:=1 to iCnt-1 do
begin
Canvas.LineTo(pts[i].X+10,pts[i].Y+10);
end;
end;
procedure PLine(A, B, C: TPoint);
var
D: TPoint;
begin
Canvas.MoveTo(A.X, A.Y);
Canvas.LineTo(B.X, B.Y);
Canvas.MoveTo(C.X, C.Y);
if A.X = B.X then
begin
D.X := C.X;
D.Y := C.Y + LineLen;
end else if A.Y = B.Y then
begin
D.X := C.X + LineLen;
D.Y := C.Y;
end else
begin
D.X := B.X + C.X - A.X;
D.Y := B.Y + C.Y - A.Y;
end;
Canvas.LineTo(D.X, D.Y);
end;
var
A, B, C: TPoint;
begin
A.X := 20;
A.Y := 30;
B.X := 40;
B.Y := 70;
C.X := 80;
C.Y := 90;
PLine(A, B, C);
end;