日期:2014-05-16  浏览次数:20479 次

线段上的点的计算.JS编写.求救啊.!
HTML code

<img src="images/1111.jpg"  width="500" height="300"  border="0" usemap="#Map" />
<map name="Map" id="Map">

<area shape="poly" coords="189,164" href="#" /><area shape="poly" coords="208,159" href="#" /><area shape="poly" coords="215,168" href="#" /><area shape="poly" coords="220,166,231,150,259,112" href="#" />
</map>
<script>
A(x1=231,y1=150)
B(x2=159,y2=112)
C(x0,y0)
//如图头像:A、B、C在同一条线段上。A、B的从标知道。C离A的距离为10
//求C点坐标
x0=?
y0=?
</script>



//如图头像:A、B、C在同一条线段上。A、B的从标知道。C离A的距离为10
//求C点坐标

------解决方案--------------------
没看到图,据你说得分析有两种情况,当C处于线段AB之间得时候如下:
算法:
var AB=0;
AB=x1*x1+y1*y1;
AB=Sqrt(AB);
x0=x1-((x1-x2)/AB*10);
y0=y1-((y1-y2)/AB*10);
当C处于线段AB之外时:
算法:
var AB=0;
AB=x1*x1+y1*y1;
AB=Sqrt(AB);
x0=(x2-x1)/AB*(10+AB)+x1;
y0=(y2-y1)/AB*(10+AB)+y1;
------解决方案--------------------
如果图是你那样,就用第二种算法:
算法:
var AB=0;
AB=x1*x1+y1*y1;
AB=Sqrt(AB);
x0=(x2-x1)/AB*(10+AB)+x1;
y0=(y2-y1)/AB*(10+AB)+y1;