UNPKG

@turbox3d/shared

Version:

turbox shared internal utility

34 lines (33 loc) 1.11 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.getRelativePositionFromEvent = getRelativePositionFromEvent; exports.pointInRect = pointInRect; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); /** 判断点是否在矩形内 */ function pointInRect(p, rect) { var _rect = (0, _slicedToArray2["default"])(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 对象 */ 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; }