Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-04-09, 16:23   #1
paincupid
初级会员
 
注册日期: 2009-04-09
帖子: 2
声望力: 0
paincupid 正向着好的方向发展
默认 [求助]以下算法如何为Matlab实现

设N1(0 0)N2(0,D1)N3(D1 0)N4(D1 D1) %D1可假设为100,不知道不假设可不可以
设一个未知点(x,y)
如果未知点到这四个点的距离相等,则输出(x,y)的坐标为 (D1/2,D1/2)
如果未知点到N1的距离比到N2N3N4的距离近,则未知点在靠近N1的四分之一区域,即AB区域,则输出未知点的坐标为:这四分之一区域的中心;如果未知点到N2的距离小于未知点到N4的距离,而在剩下的八分之一区域,即B区。则未知点的坐标输出八分之一的区域的中心


请问:如上算法怎么用Matlab实现?不胜感激!!!thanks
上传的图像
文件类型: jpg 11111.jpg (14.7 KB, 2 次查看)
paincupid 当前离线   回复时引用此帖
旧 2009-04-10, 11:24   #2
silas_xue
高级会员
 
注册日期: 2008-11-01
年龄: 39
帖子: 406
声望力: 26
silas_xue 是一个将要出名的人
默认

lz 只是我的个人想法 仅供参考
可以写一个函数 输入参数为x,y,D1,输出为x_out,y_out。我想你还是需要定义D1的,否则区域的中心怎么算呢,即这个区域是无穷大的,中心坐标无法计算的,另外,八分之一的中心,你指的是内心、外心、形心...,不知道我对你所说的区域中心的理解是否正确。
其实附件中的图提示了很多的信息,你只要计算斜率即可。
即建立以你所述的(D1/2,D1/2)为原点的直角坐标系,以原点(D1/2,D1/2)为初始点、指向(x,y)的向量A,计算他与X轴正方向的夹角。
pseudo:
if (x,y) = (D1/2,D1/2)
output (D1/2,D1/2)
else if cos(45 degree)>(y-D1/2)/(x-D1/2) >0
output center via calculation
else if (y-D1/2)/(x-D1/2) =cos(45 degree)
output center via calculation
......
end if

Thx for reading.
PS:若还算满意,直接点击“Thanks”,再次登陆时亦便于查看回答是否真的帮到你了。
silas_xue 当前离线   回复时引用此帖
旧 2009-04-10, 13:05   #3
yhcode
高级会员
 
注册日期: 2008-05-13
年龄: 44
帖子: 232
声望力: 21
yhcode 正向着好的方向发展
默认

楼上的方法挺好的,呵呵!我也这个思路,算法效率算是较高了
__________________
工科'985'博士,(图像处理、分析及理解;模式识别;运动估计;数据分析等)定做程序、算法实现--qq:752105755
yhcode 当前离线   回复时引用此帖
旧 2009-04-18, 10:41   #4
paincupid
初级会员
 
注册日期: 2009-04-09
帖子: 2
声望力: 0
paincupid 正向着好的方向发展
默认 回复: [求助]以下算法如何为Matlab实现

引用:
作者: silas_xue 查看帖子
lz 只是我的个人想法 仅供参考
可以写一个函数 输入参数为x,y,D1,输出为x_out,y_out。我想你还是需要定义D1的,否则区域的中心怎么算呢,即这个区域是无穷大的,中心坐标无法计算的,另外,八分之一的中心,你指的是内心、外心、形心...,不知道我对你所说的区域中心的理解是否正确。
其实附件中的图提示了很多的信息,你只要计算斜率即可。
即建立以你所述的(D1/2,D1/2)为原点的直角坐标系,以原点(D1/2,D1/2)为初始点、指向(x,y)的向量A,计算他与X轴正方向的夹角。
pseudo:
if (x,y) = (D1/2,D1/2)
output (D1/2,D1/2)
else if cos(45 degree)>(y-D1/2)/(x-D1/2) >0
output center via calculation
else if (y-D1/2)/(x-D1/2) =cos(45 degree)
output center via calculation
......
end if

Thx for reading.
PS:若还算满意,直接点击“Thanks”,再次登陆时亦便于查看回答是否真的帮到你了。
可是你只划分了AB区域,剩下的6个三角形并没有区分开来得到啊,而你只区分了两个大的三角形。我想做的是区分8个三角形区域
不过仍然感谢!
paincupid 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 13:52


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.