声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1439|回复: 7

[编程技巧] 请求不规则图形的内角

[复制链接]
发表于 2009-2-27 19:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我想求一个不规则图形的内角,:@(请问哪位有没有什么好的算法?! 谢谢了!
回复
分享到:

使用道具 举报

发表于 2009-2-27 20:32 | 显示全部楼层

回复 楼主 dianxin05 的帖子

请问是什么图形?
 楼主| 发表于 2009-2-27 21:14 | 显示全部楼层

回复 沙发 ch_j1985 的帖子

是任意一个图形,然后计算其内角!请问有没有什么简易的方法啊??谢谢了
发表于 2009-2-27 21:49 | 显示全部楼层
水平有限, 看了我没头没脑了!
LZ说清楚些吧!
发表于 2009-2-28 00:04 | 显示全部楼层
可否转化为直线的夹角?
 楼主| 发表于 2009-2-28 09:52 | 显示全部楼层

回复 5楼 friendchj 的帖子

如果转化为直线或者向量的夹角,那怎样确定它是否超出180度啊??谢谢了!
发表于 2009-2-28 16:52 | 显示全部楼层
  1. clear
  2. clc
  3. x=[0 0 1 2 3]; % 顶点坐标
  4. y=[0 1 2 1 1];
  5. plot([x,x(1)],[y,y(1)])

  6. x1=[x(end),x,x(1)];
  7. y1=[y(end),y,y(1)];
  8. ang=zeros(1,length(x1)-2);
  9. for i=2:length(x1)-1
  10. a=[x1(i+1) y1(i+1)]-[x1(i) y1(i)];
  11. b=[x1(i-1) y1(i-1)]-[x1(i) y1(i)];
  12. if a(1)*b(2)-b(1)*a(2) > 0 % 判断两个向量的相对位置,对于求角,至关重要
  13. ang(i-1)=2*pi-acos(dot(a,b)/sqrt(dot(a,a))/sqrt(dot(b,b)));
  14. else
  15. ang(i-1)=acos(dot(a,b)/sqrt(dot(a,a))/sqrt(dot(b,b)));
  16. end
  17. end
  18. disp(ang/pi*180)
复制代码
71.5651  135.0000   90.0000  225.0000   18.4349

[ 本帖最后由 ChaChing 于 2009-2-28 19:57 编辑 ]
untitled.jpg

评分

1

查看全部评分

 楼主| 发表于 2009-3-4 09:51 | 显示全部楼层

回复 7楼 friendchj 的帖子

谢谢您!哦呵呵!:@)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 19:37 , Processed in 0.072506 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表