flex点到线段的距离


// 计算两点之间的距离  
			private function lineSpace(x1:Number, y1:Number,x2:Number, y2:Number):Number {  
				var lineLength :Number= 0;  
				lineLength = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2)  
					* (y1 - y2));  
				return lineLength;  
				
			}  
			
			//点到线段距离
			private function pointToLine(x1:Number, y1:Number,  x2:Number, y2:Number,  x0:Number, y0:Number):Number  
				 {  
					var space:Number = 0;  
					var a:Number, b:Number, c:Number;  
					a = lineSpace(x1, y1, x2, y2);// 线段的长度  
					b = lineSpace(x1, y1, x0, y0);// (x1,y1)到点的距离  
					c = lineSpace(x2, y2, x0, y0);// (x2,y2)到点的距离  
					if (c <= 0.000001 || b <= 0.000001) {  
						space = 0;  
						return space;  
					}  
					if (a <= 0.000001) {  
						space = b;  
						return space;  
					}  
					if (c * c >= a * a + b * b) {  
						space = b;  
						return space;  
					}  
					if (b * b >= a * a + c * c) {  
						space = c;  
						return space;  
					}  
					var p:Number = (a + b + c) / 2;// 半周长  
					var s:Number = Math.sqrt(p * (p - a) * (p - b) * (p - c));// 海伦公式求面积  
					space = 2 * s / a;// 返回点到线的距离(利用三角形面积公式求高)  
					return space;  
				}  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值