|
@@ -32,7 +32,7 @@ export class SpaceItem extends SGraphyItem {
|
|
|
/** 空间所有数据 */
|
|
|
data: Space;
|
|
|
/** 空间轮廓线坐标list */
|
|
|
- private readonly pointArr: SPoint[] = [];
|
|
|
+ private readonly pointArr: SPoint[][] = [];
|
|
|
/** X坐标最小值 */
|
|
|
private minX = 0;
|
|
|
/** X坐标最大值 */
|
|
@@ -41,6 +41,7 @@ export class SpaceItem extends SGraphyItem {
|
|
|
private minY = 0;
|
|
|
/** Y坐标最大值 */
|
|
|
private maxY = 0;
|
|
|
+
|
|
|
/**
|
|
|
* 构造函数
|
|
|
*
|
|
@@ -51,28 +52,31 @@ export class SpaceItem extends SGraphyItem {
|
|
|
super(parent);
|
|
|
this.data = data;
|
|
|
if (this.data.OutLine.length) {
|
|
|
- this.pointArr = this.data.OutLine[0].map(t => {
|
|
|
- return new SPoint(t.X, t.Y);
|
|
|
+ let tempArr = this.data.OutLine;
|
|
|
+ this.minX = tempArr[0][0].X;
|
|
|
+ this.maxX = this.minX;
|
|
|
+ this.minY = tempArr[0][0].Y;
|
|
|
+ this.maxY = this.minY;
|
|
|
+ // 处理轮廓点数组,同时计算最大最小值
|
|
|
+ this.pointArr = tempArr.map(t => {
|
|
|
+ let tempArr = t.map(it => {
|
|
|
+ if (it.X < this.minX) {
|
|
|
+ this.minX = it.X;
|
|
|
+ }
|
|
|
+ if (it.Y < this.minY) {
|
|
|
+ this.minY = it.Y;
|
|
|
+ }
|
|
|
+ if (it.X > this.maxX) {
|
|
|
+ this.maxX = it.X;
|
|
|
+ }
|
|
|
+ if (it.Y > this.maxY) {
|
|
|
+ this.maxY = it.Y;
|
|
|
+ }
|
|
|
+ return new SPoint(it.X, -it.Y);
|
|
|
+ });
|
|
|
+ return tempArr;
|
|
|
});
|
|
|
}
|
|
|
- this.minX = this.pointArr[0].x;
|
|
|
- this.maxX = this.minX;
|
|
|
- this.minY = this.pointArr[0].y;
|
|
|
- this.maxY = this.minY;
|
|
|
- for (let i = 1; i < this.pointArr.length; i++) {
|
|
|
- if (this.pointArr[i].x < this.minX) {
|
|
|
- this.minX = this.pointArr[i].x;
|
|
|
- }
|
|
|
- if (this.pointArr[i].y < this.minY) {
|
|
|
- this.minY = this.pointArr[i].y;
|
|
|
- }
|
|
|
- if (this.pointArr[i].x > this.maxX) {
|
|
|
- this.maxX = this.pointArr[i].x;
|
|
|
- }
|
|
|
- if (this.pointArr[i].y > this.maxY) {
|
|
|
- this.maxY = this.pointArr[i].y;
|
|
|
- }
|
|
|
- }
|
|
|
} // Constructor
|
|
|
|
|
|
/**
|
|
@@ -140,7 +144,9 @@ export class SpaceItem extends SGraphyItem {
|
|
|
painter.pen.color = SColor.Transparent;
|
|
|
painter.brush.color = Opt.spaceColor;
|
|
|
painter.pen.lineWidth = 200;
|
|
|
- painter.drawPolygon(this.pointArr);
|
|
|
+ this.pointArr.map(t => {
|
|
|
+ painter.drawPolygon(t);
|
|
|
+ });
|
|
|
}
|
|
|
} // Function onDraw()
|
|
|
} // Class SpaceItem
|