已知一个Picture控件中的2个点A1,A2,和一个未知点A3,按A1,A2,A3的顺序排列
这3点都在同一条直线上(坐标系以PICTURE本身的坐标系为准,并且此直线可以任意方向放置),已知A1,A2的X,Y值,然后知道A3和A2的距离,怎么通过代码得到A3的X,Y值。
其实很简单的,看看大家的思路
14 个解决方案
#1
a3 to a2 is len, this is known
a2 to a1 is double z = ((x2-x1)^2 + (y2-y1)^2)^0.5
x3 = (len+z)*x2/z
y3 = (len+z)*y2/z
OK
a2 to a1 is double z = ((x2-x1)^2 + (y2-y1)^2)^0.5
x3 = (len+z)*x2/z
y3 = (len+z)*y2/z
OK
#2
sorry
x3 = (len+z)*(x2-x1)/z + x1
y3 = (len+z)*(y2-y1)/z + y1
x3 = (len+z)*(x2-x1)/z + x1
y3 = (len+z)*(y2-y1)/z + y1
#3
楼上的忘了len可正可负呀!
所以代码为:
x3 = (len+z)*(x2-x1)/z + x1
y3 = (len+z)*(y2-y1)/z + y1
或者
x3 = (-len+z)*(x2-x1)/z + x1
y3 = (-len+z)*(y2-y1)/z + y1
所以代码为:
x3 = (len+z)*(x2-x1)/z + x1
y3 = (len+z)*(y2-y1)/z + y1
或者
x3 = (-len+z)*(x2-x1)/z + x1
y3 = (-len+z)*(y2-y1)/z + y1
#4
去看看最小二乘法吧。
#5
是的,这个算法我有想过。
不过请问你有没有注意到A1-A2-A3这个规定的顺序呢?
这样就不会有正负2个值的,请将算法再修正一下。不会出现2种情况的。加上一个平面中排列顺序一定的条件
还有,其他的朋友想想其他的算法。一个算法怎么够。。晕
不过请问你有没有注意到A1-A2-A3这个规定的顺序呢?
这样就不会有正负2个值的,请将算法再修正一下。不会出现2种情况的。加上一个平面中排列顺序一定的条件
还有,其他的朋友想想其他的算法。一个算法怎么够。。晕
#6
数学家的回答:
你可以回家睡觉了!
你可以回家睡觉了!
#7
是啊是啊,我还初中没毕业呀,我装出一副老成的样子来问问题,就怕你们不回答,所以,再请您帮助我一下。我知道,在数学家的眼里,孩子永远是最可爱的。OK?
#8
yes! you are very lovely!
#9
我本来想跟你说参数方程的,而且我这里有标准算法.但是您是初中还没有毕业的人,我讲了你也不会懂,还不如不讲.如果你真的十分执着,可以去找图形学的书来看,请看画直线一章,会对你有极大帮助,如果你看得懂的话.我还是权你先学好数学再说吧.
还有,上学的时候交个异性朋友是很值得日后回味的,不要错过了好日子了又后悔.
就到这里吧
还有,上学的时候交个异性朋友是很值得日后回味的,不要错过了好日子了又后悔.
就到这里吧
#10
a1(x1,y1),a2(x2,y3),a3(x3,y3)
a2到a3的距离为len
如果三点在x或y坐标轴上,则a3(0,len)或a3(len,0)
其他:则
x3-x2/x3-x1=y3-y2/y3-y1
(x3-x2)^2+(y3-y2)^2=len
解出x3,y3
做小学数学ni
a2到a3的距离为len
如果三点在x或y坐标轴上,则a3(0,len)或a3(len,0)
其他:则
x3-x2/x3-x1=y3-y2/y3-y1
(x3-x2)^2+(y3-y2)^2=len
解出x3,y3
做小学数学ni
#11
我是在说自己ni,刚刚才看到上面的一些回答,本来是想开玩笑来着 :)
#12
可以这样认为 A1 A2 A3 在以A1为起点的一条射线上
射线的方程式
x = d1 * t + x0
y = d2 * t + y0
由于已知 A1 ,A2 坐标
可以计算出
A1 A2 两点距离 double distance = sqrt((A1.x-A2.x)*(A1.x-A2.x)+(A1.y-A2.y)*(A1.y-A2.y))
令 t = distance
代入方程可以计算 出 d1, d2
然后我们还知道 A2,A3 的距离 为 T
可得
A3.x = d1* T + A2.x;
A3.y = d2* T + A2.y;
射线的方程式
x = d1 * t + x0
y = d2 * t + y0
由于已知 A1 ,A2 坐标
可以计算出
A1 A2 两点距离 double distance = sqrt((A1.x-A2.x)*(A1.x-A2.x)+(A1.y-A2.y)*(A1.y-A2.y))
令 t = distance
代入方程可以计算 出 d1, d2
然后我们还知道 A2,A3 的距离 为 T
可得
A3.x = d1* T + A2.x;
A3.y = d2* T + A2.y;
#13
可以这样认为 A1 A2 A3 在以A1为起点的一条射线上
射线的方程式
x = d1 * t + x0
y = d2 * t + y0 (t>=0)
由于已知 A1 ,A2 坐标
可以计算出
A1 A2 两点距离 double distance = sqrt((A1.x-A2.x)*(A1.x-A2.x)+(A1.y-A2.y)*(A1.y-A2.y))
令 t = distance
代入方程可以计算 出 d1, d2
然后我们还知道 A2,A3 的距离 为 T
可得
A3.x = d1* T + A2.x;
A3.y = d2* T + A2.y;
射线的方程式
x = d1 * t + x0
y = d2 * t + y0 (t>=0)
由于已知 A1 ,A2 坐标
可以计算出
A1 A2 两点距离 double distance = sqrt((A1.x-A2.x)*(A1.x-A2.x)+(A1.y-A2.y)*(A1.y-A2.y))
令 t = distance
代入方程可以计算 出 d1, d2
然后我们还知道 A2,A3 的距离 为 T
可得
A3.x = d1* T + A2.x;
A3.y = d2* T + A2.y;
#14
HEY,GUYS,谢谢回答了我问题哥哥们。不想说肉麻得话。:)
没有回答我问题得哥哥我就不谢了:)
没有回答我问题的还损我的,比如:
sobingman(丧尸)
我说:“我操你妈!!!你算谁呀!找骂呀你!!自恋狂滚一边去!!我操!!去死!!"
以后见着我请你闪边上一点,不然...见一次扁一次!我操你妈!!
没有回答我问题得哥哥我就不谢了:)
没有回答我问题的还损我的,比如:
sobingman(丧尸)
我说:“我操你妈!!!你算谁呀!找骂呀你!!自恋狂滚一边去!!我操!!去死!!"
以后见着我请你闪边上一点,不然...见一次扁一次!我操你妈!!
#1
a3 to a2 is len, this is known
a2 to a1 is double z = ((x2-x1)^2 + (y2-y1)^2)^0.5
x3 = (len+z)*x2/z
y3 = (len+z)*y2/z
OK
a2 to a1 is double z = ((x2-x1)^2 + (y2-y1)^2)^0.5
x3 = (len+z)*x2/z
y3 = (len+z)*y2/z
OK
#2
sorry
x3 = (len+z)*(x2-x1)/z + x1
y3 = (len+z)*(y2-y1)/z + y1
x3 = (len+z)*(x2-x1)/z + x1
y3 = (len+z)*(y2-y1)/z + y1
#3
楼上的忘了len可正可负呀!
所以代码为:
x3 = (len+z)*(x2-x1)/z + x1
y3 = (len+z)*(y2-y1)/z + y1
或者
x3 = (-len+z)*(x2-x1)/z + x1
y3 = (-len+z)*(y2-y1)/z + y1
所以代码为:
x3 = (len+z)*(x2-x1)/z + x1
y3 = (len+z)*(y2-y1)/z + y1
或者
x3 = (-len+z)*(x2-x1)/z + x1
y3 = (-len+z)*(y2-y1)/z + y1
#4
去看看最小二乘法吧。
#5
是的,这个算法我有想过。
不过请问你有没有注意到A1-A2-A3这个规定的顺序呢?
这样就不会有正负2个值的,请将算法再修正一下。不会出现2种情况的。加上一个平面中排列顺序一定的条件
还有,其他的朋友想想其他的算法。一个算法怎么够。。晕
不过请问你有没有注意到A1-A2-A3这个规定的顺序呢?
这样就不会有正负2个值的,请将算法再修正一下。不会出现2种情况的。加上一个平面中排列顺序一定的条件
还有,其他的朋友想想其他的算法。一个算法怎么够。。晕
#6
数学家的回答:
你可以回家睡觉了!
你可以回家睡觉了!
#7
是啊是啊,我还初中没毕业呀,我装出一副老成的样子来问问题,就怕你们不回答,所以,再请您帮助我一下。我知道,在数学家的眼里,孩子永远是最可爱的。OK?
#8
yes! you are very lovely!
#9
我本来想跟你说参数方程的,而且我这里有标准算法.但是您是初中还没有毕业的人,我讲了你也不会懂,还不如不讲.如果你真的十分执着,可以去找图形学的书来看,请看画直线一章,会对你有极大帮助,如果你看得懂的话.我还是权你先学好数学再说吧.
还有,上学的时候交个异性朋友是很值得日后回味的,不要错过了好日子了又后悔.
就到这里吧
还有,上学的时候交个异性朋友是很值得日后回味的,不要错过了好日子了又后悔.
就到这里吧
#10
a1(x1,y1),a2(x2,y3),a3(x3,y3)
a2到a3的距离为len
如果三点在x或y坐标轴上,则a3(0,len)或a3(len,0)
其他:则
x3-x2/x3-x1=y3-y2/y3-y1
(x3-x2)^2+(y3-y2)^2=len
解出x3,y3
做小学数学ni
a2到a3的距离为len
如果三点在x或y坐标轴上,则a3(0,len)或a3(len,0)
其他:则
x3-x2/x3-x1=y3-y2/y3-y1
(x3-x2)^2+(y3-y2)^2=len
解出x3,y3
做小学数学ni
#11
我是在说自己ni,刚刚才看到上面的一些回答,本来是想开玩笑来着 :)
#12
可以这样认为 A1 A2 A3 在以A1为起点的一条射线上
射线的方程式
x = d1 * t + x0
y = d2 * t + y0
由于已知 A1 ,A2 坐标
可以计算出
A1 A2 两点距离 double distance = sqrt((A1.x-A2.x)*(A1.x-A2.x)+(A1.y-A2.y)*(A1.y-A2.y))
令 t = distance
代入方程可以计算 出 d1, d2
然后我们还知道 A2,A3 的距离 为 T
可得
A3.x = d1* T + A2.x;
A3.y = d2* T + A2.y;
射线的方程式
x = d1 * t + x0
y = d2 * t + y0
由于已知 A1 ,A2 坐标
可以计算出
A1 A2 两点距离 double distance = sqrt((A1.x-A2.x)*(A1.x-A2.x)+(A1.y-A2.y)*(A1.y-A2.y))
令 t = distance
代入方程可以计算 出 d1, d2
然后我们还知道 A2,A3 的距离 为 T
可得
A3.x = d1* T + A2.x;
A3.y = d2* T + A2.y;
#13
可以这样认为 A1 A2 A3 在以A1为起点的一条射线上
射线的方程式
x = d1 * t + x0
y = d2 * t + y0 (t>=0)
由于已知 A1 ,A2 坐标
可以计算出
A1 A2 两点距离 double distance = sqrt((A1.x-A2.x)*(A1.x-A2.x)+(A1.y-A2.y)*(A1.y-A2.y))
令 t = distance
代入方程可以计算 出 d1, d2
然后我们还知道 A2,A3 的距离 为 T
可得
A3.x = d1* T + A2.x;
A3.y = d2* T + A2.y;
射线的方程式
x = d1 * t + x0
y = d2 * t + y0 (t>=0)
由于已知 A1 ,A2 坐标
可以计算出
A1 A2 两点距离 double distance = sqrt((A1.x-A2.x)*(A1.x-A2.x)+(A1.y-A2.y)*(A1.y-A2.y))
令 t = distance
代入方程可以计算 出 d1, d2
然后我们还知道 A2,A3 的距离 为 T
可得
A3.x = d1* T + A2.x;
A3.y = d2* T + A2.y;
#14
HEY,GUYS,谢谢回答了我问题哥哥们。不想说肉麻得话。:)
没有回答我问题得哥哥我就不谢了:)
没有回答我问题的还损我的,比如:
sobingman(丧尸)
我说:“我操你妈!!!你算谁呀!找骂呀你!!自恋狂滚一边去!!我操!!去死!!"
以后见着我请你闪边上一点,不然...见一次扁一次!我操你妈!!
没有回答我问题得哥哥我就不谢了:)
没有回答我问题的还损我的,比如:
sobingman(丧尸)
我说:“我操你妈!!!你算谁呀!找骂呀你!!自恋狂滚一边去!!我操!!去死!!"
以后见着我请你闪边上一点,不然...见一次扁一次!我操你妈!!