2.4使用skew,判断是否站在方块上面。但是skew这个功能启用了,还有别的方法吗


/**
判断一个点是否在一个三角形内部
@param A 三角形的第一个顶点坐标
@param B 三角形的第二个顶点坐标
@param C 三角形的第三个顶点坐标
@param P 待判断的点的坐标
@returns 如果点在三角形内部,返回 true,否则返回 false
/
private isPointInTriangle(A: number[], B: number[], C: number[], P: number[]): boolean {
/*
// 计算向量 AB、AP、BC、BP、CA、CP
const AB = [B[0] - A[0], B[1] - A[1]];
const AP = [P[0] - A[0], P[1] - A[1]];
const BC = [C[0] - B[0], C[1] - B[1]];
const BP = [P[0] - B[0], P[1] - B[1]];
const CA = [A[0] - C[0], A[1] - C[1]];
const CP = [P[0] - C[0], P[1] - C[1]];
// 计算叉积
const cross1 = vectorCross(AB, AP);
const cross2 = vectorCross(BC, BP);
const cross3 = vectorCross(CA, CP);
// 判断点是否在三角形内部
// 如果点在三角形内部,那么三个叉积的符号应该相同(要么都是正数,要么都是负数)
return (cross1 >= 0 && cross2 >= 0 && cross3 >= 0) || (cross1 <= 0 && cross2 <= 0 && cross3 <= 0);
}
判断坐标是否在两个三角形内就行吧
搜嘎搜嘎,感谢
2d引擎做菱形的地图,不就是有node坐标转菱形格子,菱形格子转node坐标。你用这个判断也行。
图形学大佬啊
…问下ai就好了
//判断坐标是否在菱形范围内
let inRange = Math.abs(x * height) + Math.abs(y * width) <= height * width / 2;