请教 lxpbuaa(桂枝香在故国晚秋) ,Canvas.Rectangle的一个问题~

shmilyjiujiu 2003-09-02 12:10:58
LineBitmap.Canvas.MoveTo(0,0);
LineBitmap.Canvas.LineTo(LineWidth - 1,0);
LineBitmap.Canvas.LineTo(LineWidth - 1,LineHeight - 1);
LineBitmap.Canvas.LineTo(LinePos,LineHeight - 1);
LineBitmap.Canvas.LineTo(0,0);

LineWidth 是设置的边框的宽度,如果LineWidth 比较大的时候,就可以在屏幕上看到在这个矩形的四个角的地方 都缺少了一些点,看起来四个角并不是完美的直角,请问,怎么解决呢?

lxpbuaa(桂枝香在故国晚秋) :给我的解决方法。

LineBitmap.Canvas.Rectangle(0, 0, LineWidth, LineHeight);

————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。


可是我用了这个方法之后,发现了下面这个错误:

为什么我用了LineBitmap.Canvas.Rectangle(0, 0, LineWidth, LineHeight);

后,当线条宽度为偶数的时候,看起来会显得左,上边框和右,下边框的宽度不一样呢?
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shmilyjiujiu 2003-09-02
  • 打赏
  • 举报
回复
我就是把pen.width设置为偶数的时候,看起来会显得左,上边框和右,下边框的宽度不一样了 你试过这样子写是好的吗?
lxpbuaa 2003-09-02
  • 打赏
  • 举报
回复
是么?你看下面的结果是不是有:

procedure TForm1.Button1Click(Sender: TObject);
begin
Canvas.Pen.Width := 10;
Canvas.Rectangle(50, 50, 200, 200);
end;

————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
lxpbuaa 2003-09-02
  • 打赏
  • 举报
回复
是么?你看下面的结果是不是有:

procedure TForm1.Button1Click(Sender: TObject);
begin
Canvas.Pen.Width := 10;
Canvas.Rectangle(50, 50, 200, 200);
end;
shmilyjiujiu 2003-09-02
  • 打赏
  • 举报
回复
没有啊~~
Delphi1985 2003-09-02
  • 打赏
  • 举报
回复
你是不是有句写漏了啊
LineBitmap.Canvas.MoveTo(0,0);


LinBitmap.Canvas.pen.moveto(0,0);

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧