EDA365电子工程师网

标题: 请问怎么获得两条line的夹角? [打印本页]

作者: chuchiwolong    时间: 2014-11-12 18:00
标题: 请问怎么获得两条line的夹角?
如题:请问怎么获得两条line的夹角?目的是找到垂直的线。谢谢!
作者: kevin890505    时间: 2014-11-12 21:24
这个貌似要自己算了吧,访问startend属性
作者: betamelody    时间: 2014-11-13 09:24
用数学方法计算即可,已知条件非常的充足,如果是需要获得直线和弧线的夹角,则先要将弧线转换为小线段,与直线连接一端的最后一条线段求直线和直线的夹角,弧线与弧线的夹角可以参照以上
作者: chuchiwolong    时间: 2014-11-13 11:05
betamelody 发表于 2014-11-13 09:24
用数学方法计算即可,已知条件非常的充足,如果是需要获得直线和弧线的夹角,则先要将弧线转换为小线段,与直线 ...

搞定了,代码如下:
coorstartEnd=tmpsel->startEnd
x1= min(car(car(coorstartEnd)) car(cadr(coorstartEnd)))
y1= min(cadr(car(coorstartEnd)) cadr(cadr(coorstartEnd)))
x2= max(car(car(coorstartEnd)) car(cadr(coorstartEnd)))
y2= max(cadr(car(coorstartEnd)) cadr(cadr(coorstartEnd)))

     tmpStartEnd= tmpLeftLine->startEnd
     tmpX1= car(car(tmpStartEnd))
     tmpY1= cadr(car(tmpStartEnd))
     tmpX2= car(cadr(tmpStartEnd))
     tmpY2= cadr(cadr(tmpStartEnd))
     
     DisX1=x2-x1
     DisY1=y2-y1
     DisX2=tmpX2-tmpX1
     DisY2=tmpY2-tmpY1
     tmpsqrt= sqrt((DisX1*DisX1+DisY1*DisY1)*(DisX2*DisX2+DisY2*DisY2))
     tmpCos=(DisX1*DisX2+DisY1*DisY2)/tmpsqrt
     Angle= acos(abs(tmpCos))
     Angle= Angle/3.1415926*180

作者: rag223323    时间: 2014-11-21 16:57
这个都可以吗?
作者: chuchiwolong    时间: 2014-11-21 18:00
rag223323 发表于 2014-11-21 16:57
这个都可以吗?

什么意思?我只是写了计算过程的代码,没有做成函数





欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2