例如:
点A:104.6385,38.9510
线Line:104.6934,40.2433 - 106.0000,37.0000
如何确定A和Line关系呢???
说明一般有三中关系:逆时针方向,顺时针方向,在线上
我有叉积的计算方法,行不通啊.
有谁知道,怎么地图的关系算法,指点下.谢谢.
10 个解决方案
#1
哎 还别说 这个用叉乘还真的是有问题 地图实际上应该是一个曲面啊
如果没有别的方法的话使用地图的转换方法试试吧 把直线先按照屏幕坐标 得到直线方程 然后把点也转换到屏幕坐标
在屏幕坐标下用叉乘是不是就可以了啊? 至少屏幕上的左右和地图上的左右应该是统一的吧。
如果没有别的方法的话使用地图的转换方法试试吧 把直线先按照屏幕坐标 得到直线方程 然后把点也转换到屏幕坐标
在屏幕坐标下用叉乘是不是就可以了啊? 至少屏幕上的左右和地图上的左右应该是统一的吧。
#2
那是不是把经纬度坐标系统转换成XY直角坐标.在进行计算.
那有没有直接用经纬度来算的关系的算法呢。
那有没有直接用经纬度来算的关系的算法呢。
#3
还是不行,我把经纬度转换成直角XY坐标,在用叉积来算向量.
发现得的结果是错误的.
郁闷了.
发现得的结果是错误的.
郁闷了.
#4
求得直线方程后,再求点到线的重心(求垂),从而确定点是否在线上。如果不在线上,根据重心点和点确定法线的方程的K,根据两个直线的K,确定点所在方向。
#5
这里有几个问题啊:
1.怎么通过经纬度求直线方程
2.点和线距离,是不是通过求三角形的高,获得.
3.中心点和法线的方程的K怎么求.
1.怎么通过经纬度求直线方程
2.点和线距离,是不是通过求三角形的高,获得.
3.中心点和法线的方程的K怎么求.
#6
这个。。。。
1、你的直线总有两个点吧,直线方程根据两点一线公式获得。具体见:http://zhidao.baidu.com/question/66874640.html?si=8
2、不是。是点到直线距离公式。具体见:http://iask.sina.com.cn/b/2707564.html?from=related
3、这个,还是看下1和2.
呵呵,另:有时间的话,可以看下高二的数学。
1、你的直线总有两个点吧,直线方程根据两点一线公式获得。具体见:http://zhidao.baidu.com/question/66874640.html?si=8
2、不是。是点到直线距离公式。具体见:http://iask.sina.com.cn/b/2707564.html?from=related
3、这个,还是看下1和2.
呵呵,另:有时间的话,可以看下高二的数学。
#7
只有在直线有方向的情况下,点和线才存在三种关系:逆时针方向,顺时针方向,在线上。所以准确的说法应该是点和矢量的位置关系! 而点和矢量的关系用叉积判断就足够了。
#8
/* 点结构 */
struct Point
{
double x;
double y;
Point (double a=0, double b=0) { x=a; y=b;} //constructor
};
/******************************************************************************
r=multiply(sp,ep,op),得到(sp-op)和(ep-op)的叉积
r>0:ep在矢量opsp的逆时针方向;
r=0:opspep三点共线;
r<0:ep在矢量opsp的顺时针方向
*******************************************************************************/
double multiply(Point sp,Point ep,Point op)
{
return((sp.x-op.x)*(ep.y-op.y)-(ep.x-op.x)*(sp.y-op.y));
}
#9
我看到有人用直线方程式 ,根据一点的y值求直线上的x值来对比.
不知道准确不准确啊.
有谁知道不.
不知道准确不准确啊.
有谁知道不.
#10
楼上那样计算的话,是不是没有考虑直线的方向呢?那就不是矢量了吧。
#1
哎 还别说 这个用叉乘还真的是有问题 地图实际上应该是一个曲面啊
如果没有别的方法的话使用地图的转换方法试试吧 把直线先按照屏幕坐标 得到直线方程 然后把点也转换到屏幕坐标
在屏幕坐标下用叉乘是不是就可以了啊? 至少屏幕上的左右和地图上的左右应该是统一的吧。
如果没有别的方法的话使用地图的转换方法试试吧 把直线先按照屏幕坐标 得到直线方程 然后把点也转换到屏幕坐标
在屏幕坐标下用叉乘是不是就可以了啊? 至少屏幕上的左右和地图上的左右应该是统一的吧。
#2
那是不是把经纬度坐标系统转换成XY直角坐标.在进行计算.
那有没有直接用经纬度来算的关系的算法呢。
那有没有直接用经纬度来算的关系的算法呢。
#3
还是不行,我把经纬度转换成直角XY坐标,在用叉积来算向量.
发现得的结果是错误的.
郁闷了.
发现得的结果是错误的.
郁闷了.
#4
求得直线方程后,再求点到线的重心(求垂),从而确定点是否在线上。如果不在线上,根据重心点和点确定法线的方程的K,根据两个直线的K,确定点所在方向。
#5
这里有几个问题啊:
1.怎么通过经纬度求直线方程
2.点和线距离,是不是通过求三角形的高,获得.
3.中心点和法线的方程的K怎么求.
1.怎么通过经纬度求直线方程
2.点和线距离,是不是通过求三角形的高,获得.
3.中心点和法线的方程的K怎么求.
#6
这个。。。。
1、你的直线总有两个点吧,直线方程根据两点一线公式获得。具体见:http://zhidao.baidu.com/question/66874640.html?si=8
2、不是。是点到直线距离公式。具体见:http://iask.sina.com.cn/b/2707564.html?from=related
3、这个,还是看下1和2.
呵呵,另:有时间的话,可以看下高二的数学。
1、你的直线总有两个点吧,直线方程根据两点一线公式获得。具体见:http://zhidao.baidu.com/question/66874640.html?si=8
2、不是。是点到直线距离公式。具体见:http://iask.sina.com.cn/b/2707564.html?from=related
3、这个,还是看下1和2.
呵呵,另:有时间的话,可以看下高二的数学。
#7
只有在直线有方向的情况下,点和线才存在三种关系:逆时针方向,顺时针方向,在线上。所以准确的说法应该是点和矢量的位置关系! 而点和矢量的关系用叉积判断就足够了。
#8
/* 点结构 */
struct Point
{
double x;
double y;
Point (double a=0, double b=0) { x=a; y=b;} //constructor
};
/******************************************************************************
r=multiply(sp,ep,op),得到(sp-op)和(ep-op)的叉积
r>0:ep在矢量opsp的逆时针方向;
r=0:opspep三点共线;
r<0:ep在矢量opsp的顺时针方向
*******************************************************************************/
double multiply(Point sp,Point ep,Point op)
{
return((sp.x-op.x)*(ep.y-op.y)-(ep.x-op.x)*(sp.y-op.y));
}
#9
我看到有人用直线方程式 ,根据一点的y值求直线上的x值来对比.
不知道准确不准确啊.
有谁知道不.
不知道准确不准确啊.
有谁知道不.
#10
楼上那样计算的话,是不是没有考虑直线的方向呢?那就不是矢量了吧。