如何在delpin中画一条固定长度、有角度的斜线,请高手指点

qipp1150 2007-06-30 04:39:01
现在有个这样的问题,如何在delphi里画一个线段(长度60个像素)与垂直方向成50度角,
...全文
240 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
池龙 2007-07-04
  • 打赏
  • 举报
回复
Delphi的三角函数用的是弧度,你要换算成弧度才行。
池龙 2007-07-03
  • 打赏
  • 举报
回复
没看我写的“画布的坐标系Y方向和一般的直角坐标系是反的。所以你要画的线段应该是”吧。。。

你看到画出来的左偏,是因为Canvas的坐标系和直角坐标系不一样造成的,Canvas的坐标系左上角为(0,0),右下角为(X,Y),而直角坐标系左下角为(0,0),右上角为(X,Y)。

所以画的时候要做转换的。

qipp1150 2007-07-03
  • 打赏
  • 举报
回复
不是现在画出来的是左偏,逆时针成50度,而要求的是与垂直顺时针成50度
qipp1150 2007-07-03
  • 打赏
  • 举报
回复
Canvas.moveTo(400,710);
Canvas.lineTo(400+round(60*cos(40)),710-round(60*sin(40)));
我是这么写得,请问高手,问题出在哪里
池龙 2007-06-30
  • 打赏
  • 举报
回复
假设起点是(0,0),与垂直方向50度角。。。也就是说和水平方向40度?

中学的三角函数都忘记得差不多了。。。

X = 60 * cos(40) = 45.96 = 46
Y = 60 * sin(40) = 38.57 = 39

画布的坐标系Y方向和一般的直角坐标系是反的。所以你要画的线段应该是
MoveTo(0, 0);
LineTo(46, - 39);

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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