js怎么判断这个点在a还是b
option = {
xAxis: { type: 'log' },
yAxis: {
type: 'value',
min: 0,
max: function (value) {
return value.max;
},
axisLabel: {
formatter: '{value} %'
}
},
series: [
{
// name: '紫色',
type: 'line',
data: [
[0.0004, 500],
[0.001, 200],
[0.003, 140],
[0.02, 120],
[0.5, 120],
[0.5, 110],
[10, 110],
[100, 110]
],
itemStyle: {
normal: {
color: '#ad46f3'
}
}
},
{
symbolSize: 20,
data: [[3.03, 4.23]],
type: 'scatter',
itemStyle: {
normal: {
color: '#33f333'
}
}
}
]
};
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果是单纯的判断在任意曲线哪一侧的话,需要一些图形学的知识,因为曲线还有闭合、交叉的情况,不过既然是折线图,那就好办,因为折线图不会闭合、且
x
值是唯一的。假设折线的方程是
f(x)
,点坐标是[x, y]
,那么f(x) > y
就是在B
区,把比较符号反过来就是在A
区,相等则是在折线上。折线函数大致长这样——
_
不确定能不能直接运行。
楼上已经指出这种折线图不会闭合、且x值是唯一单向的。
因为折线并没有简单的函数,而是由点集数据给出,所以这个问题其实转换为在P(x,y) 与点集子区间关系上其中
x0<=x<=x1
再根据要求,转换为比较
直线
X=x
与直线段((x0,y0),(x1,y1)
交点(x,yj)
与y
的关系上,如果y<yj
,则P属于B区,如果y=yj
,则P属于折线(是折线上的点),如果y>yj
则属于A区。为了简化算法,其实我们可以约定
x0<x<=x1
和x=xmin
(这样更好判断(计算))