A点x,y B点x,y 从A点往B点移动 请问这个算法怎么实现。

luckyum 2003-12-18 03:23:55
A点x,y B点x,y 从A点往B点方向移动 就是条射线 请问这个算法怎么实现。
...全文
116 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
saint001 2003-12-18
  • 打赏
  • 举报
回复
另一个是问题是
你要浮点运算还是整型(图形学算法)

给出的是整型象素点坐标还是实数坐标
即算法要求怎么样
saint001 2003-12-18
  • 打赏
  • 举报
回复
你还是没有说清楚要什么结果
给什么条件,得到什么
什么要求

不说清楚不知道你要什么具体算法
luckyum 2003-12-18
  • 打赏
  • 举报
回复
哪位有现成的算法提供一下。这个程序我急的做出来。
saint001 2003-12-18
  • 打赏
  • 举报
回复
如果(dx,dy)不在第一象限,要做变换,即先把第一象限的画出来
如果斜率大于1,x,y交换
saint001 2003-12-18
  • 打赏
  • 举报
回复
Bresenham算法生成直线
假定直线从(x1,y1)到(x2,y2),
令dx=x2-x1,dy=y2-y1
不妨设(dx,dy)在第一象限,并且直线的斜率不大于1

画线过程中有三个循环变量
x,y,d
初值
x=x1,y=y1,d=2*dy-dx

循环,直到x==x2为止
{
如果d>=0,y++,d+=2*(dy-dx)
如果d<0 ,x++,d+=2*dy
}
HUNTON 2003-12-18
  • 打赏
  • 举报
回复
图形学里有现成的算法可以顺序取出线段AB之间的点。
saint001 2003-12-18
  • 打赏
  • 举报
回复
t是整型的吗
x进了t,y就不是进t了,根据斜率可以算的
dy=(by-ay)/(bx-ax) *t
估计你不需要实现图形学的算法
luckyum 2003-12-18
  • 打赏
  • 举报
回复
我要的是 A点向B点 步进 每次步进t

A点X 进t Y 进t 向B的方向


我急得用 解决迅速结贴
saint001 2003-12-18
  • 打赏
  • 举报
回复
如果要生成算法
那就是图形学的问题了
Bresenham算法很好
火云洞红孩儿 2003-12-18
  • 打赏
  • 举报
回复
利用评估函数~
你可以参照有名的Astar算法
~
评估函数:
f=g+h
g:当前点距离终点的长度
h:这一步的长度

以起点位置开始向八个方向走一步.
直角方向h为10,斜角方向h为14;
对8个方向的f值排序
捡结点f值最小的走就可以了~
建议:
g可以取abs(endx-x)+abs(endy-y)
saint001 2003-12-18
  • 打赏
  • 举报
回复
t从0到1变化
px=(Bx-Ax)*t+Ax
py=(By-Ay)*t+Ay

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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