@turbox3d/shared
Version:
turbox shared internal utility
26 lines • 811 B
JavaScript
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
/** 判断点是否在矩形内 */
export function pointInRect(p, rect) {
var _rect = _slicedToArray(rect, 2),
r1 = _rect[0],
r2 = _rect[1];
var c1 = (p.x - r1.x) * (p.x - r2.x);
var c2 = (p.y - r1.y) * (p.y - r2.y);
return c1 <= 0 && c2 <= 0;
}
/**
* 获得点击位置相对于 canvas 的坐标
* 如果输入参数不合法,或点击位置超出 canvas 的 clientRect 则返回 undefined
* @param vec 事件坐标
* @param canvas 要接受的 canvas 对象
*/
export function getRelativePositionFromEvent(vec, rect) {
var point = {
x: vec.x - rect.x,
y: vec.y - rect.y
};
if (point.x <= 0 || point.y <= 0 || point.x > rect.width || point.y > rect.height) {
return undefined;
}
return point;
}