|
@@ -3119,7 +3119,7 @@ export default {
|
|
|
}
|
|
|
|
|
|
|
|
|
- function generateGrid(startPoint, xRange, yRange, zRange, size) {
|
|
|
+ function generateGrid(startPoint,xRange, yRange, zRange, size) {
|
|
|
const grid = [];
|
|
|
|
|
|
// 计算每个方向的立方体数量
|
|
@@ -3128,9 +3128,9 @@ export default {
|
|
|
const zCount = Math.ceil(zRange / size);
|
|
|
|
|
|
// 生成网格点
|
|
|
- for (let x = 0; x < xCount; x++) {
|
|
|
- for (let y = 0; y < yCount; y++) {
|
|
|
- for (let z = 0; z < zCount; z++) {
|
|
|
+ for (let x = origin.x; x < xCount; x++) {
|
|
|
+ for (let y = origin.y; y < yCount; y++) {
|
|
|
+ for (let z = origin.z; z < zCount; z++) {
|
|
|
grid.push({
|
|
|
x: startPoint.x + x * size,
|
|
|
y: startPoint.y + y * size,
|
|
@@ -3145,6 +3145,41 @@ export default {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ function createBoundingBoxFromRings(rings) {
|
|
|
+ // 初始化四至范围
|
|
|
+ let xmin = Infinity, ymin = Infinity;
|
|
|
+ let xmax = -Infinity, ymax = -Infinity;
|
|
|
+
|
|
|
+ // 遍历所有点找到四至范围
|
|
|
+ rings.forEach(ring => {
|
|
|
+ ring.forEach(point => {
|
|
|
+ const [x, y] = point;
|
|
|
+ xmin = Math.min(xmin, x);
|
|
|
+ ymin = Math.min(ymin, y);
|
|
|
+ xmax = Math.max(xmax, x);
|
|
|
+ ymax = Math.max(ymax, y);
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ // 创建矩形面坐标
|
|
|
+ const rectangle = [
|
|
|
+ [xmin, ymin], // 左下
|
|
|
+ [xmax, ymin], // 右下
|
|
|
+ [xmax, ymax], // 右上
|
|
|
+ [xmin, ymax], // 左上
|
|
|
+ [xmin, ymin] // 闭合
|
|
|
+ ];
|
|
|
+
|
|
|
+ return {
|
|
|
+ origin: [xmin, ymin], // 原点
|
|
|
+ length: xmax - xmin, // 长度
|
|
|
+ width: ymax - ymin
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//获取当前场景
|
|
|
function getPowerCube(params){
|
|
|
let id = params.id;
|
|
@@ -3157,25 +3192,6 @@ export default {
|
|
|
let fields = params.fields;
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
- // const cubeGrid = generateGrid({
|
|
|
- // x:500,
|
|
|
- // y:-1500,
|
|
|
- // z:0,
|
|
|
- // }, 4000, 4000, 120,32);
|
|
|
- // showThreeCubeDetail({
|
|
|
- // "id":"test",
|
|
|
- // "status":"show",
|
|
|
- // "size": {
|
|
|
- // x:32,
|
|
|
- // y:32,
|
|
|
- // z:32
|
|
|
- // },
|
|
|
- // "points":cubeGrid,
|
|
|
- // "depthTest":false
|
|
|
- // })
|
|
|
-
|
|
|
if(status === "hide"){
|
|
|
showThreeCubeDetail({
|
|
|
id:params.id,
|
|
@@ -3184,25 +3200,55 @@ export default {
|
|
|
currentShowGridParams = null;
|
|
|
return
|
|
|
}
|
|
|
- currentShowGridParams = {
|
|
|
- id,
|
|
|
- level,
|
|
|
- minZ,
|
|
|
- maxZ,
|
|
|
- rings,
|
|
|
- fields
|
|
|
- };
|
|
|
- getSixPowerByPolygon({
|
|
|
- id,
|
|
|
- status,
|
|
|
- minZ,
|
|
|
- maxZ,
|
|
|
- level,
|
|
|
- fields,
|
|
|
- rings,
|
|
|
- deepShow,
|
|
|
- scrollId:"",
|
|
|
- });
|
|
|
+ //备用方案:根据rings四至范围生成矩形面,获取左下角的点为原点,距离分别为长、宽
|
|
|
+
|
|
|
+ let { origin,length,width } = createBoundingBoxFromRings(rings);
|
|
|
+
|
|
|
+ debugger
|
|
|
+ const cubeGrid = generateGrid({
|
|
|
+ x:origin[0],
|
|
|
+ y:origin[1],
|
|
|
+ z:minZ,
|
|
|
+ }, length, width, maxZ-minZ,32);
|
|
|
+ showThreeCubeDetail({
|
|
|
+ "id":"test",
|
|
|
+ "status":"show",
|
|
|
+ "size": {
|
|
|
+ x:32,
|
|
|
+ y:32,
|
|
|
+ z:32
|
|
|
+ },
|
|
|
+ "points":cubeGrid,
|
|
|
+ "depthTest":false
|
|
|
+ })
|
|
|
+ //
|
|
|
+ // if(status === "hide"){
|
|
|
+ // showThreeCubeDetail({
|
|
|
+ // id:params.id,
|
|
|
+ // status:"hide"
|
|
|
+ // });
|
|
|
+ // currentShowGridParams = null;
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // currentShowGridParams = {
|
|
|
+ // id,
|
|
|
+ // level,
|
|
|
+ // minZ,
|
|
|
+ // maxZ,
|
|
|
+ // rings,
|
|
|
+ // fields
|
|
|
+ // };
|
|
|
+ // getSixPowerByPolygon({
|
|
|
+ // id,
|
|
|
+ // status,
|
|
|
+ // minZ,
|
|
|
+ // maxZ,
|
|
|
+ // level,
|
|
|
+ // fields,
|
|
|
+ // rings,
|
|
|
+ // deepShow,
|
|
|
+ // scrollId:"",
|
|
|
+ // });
|
|
|
}
|
|
|
|
|
|
// 获取当前场景-递归获取权重数据
|