浏览代码

[feat][生涯彩虹图][试验生涯彩虹图]

hizhangling 1 周之前
父节点
当前提交
40b6d775ff
共有 1 个文件被更改,包括 39 次插入3 次删除
  1. 39 3
      src/views/xjc-integratedmachine/common/ai/TestColorCanvas.vue

+ 39 - 3
src/views/xjc-integratedmachine/common/ai/TestColorCanvas.vue

@@ -21,14 +21,26 @@
 
     // 第一个职业
     let startAngle11 = 0;
+    let start11Flag = false;
     let startAngle12 = 0;
+    let start12Flag = false;
     let startAngle13 = 0;
+    let start13Flag = false;
 
     // 第二个职业
     let startAngle21 = 0;
     let startAngle22 = 0;
     let startAngle23 = 0;
 
+    // 所有轨道绘画限制
+    let paintFlagList = [
+        false, false, false,
+        false, false, false,
+        false, false, false,
+        false, false, false,
+        false, false, false,
+        false, false, false]
+
     let undoList = []; // 用于保存所有操作,用于撤销和重做
     let redoList = []; // 用于保存所有撤销的操作,用于重做
 
@@ -59,10 +71,13 @@
         // 第一个职业
         if(sum < Math.pow(100,2) && sum > Math.pow(50,2)){
             startAngle11 = calcAngle();
+            calcPaintCircleFlag(0)
         }else if(sum < Math.pow(150,2) && sum > Math.pow(100,2)){
             startAngle12 = calcAngle();
+            calcPaintCircleFlag(1)
         }else if(sum < Math.pow(200,2) && sum > Math.pow(150,2)){
             startAngle13 = calcAngle();
+            calcPaintCircleFlag(2)
         }
         // 第二个职业
         else if(sum < Math.pow(300,2) && sum > Math.pow(250,2)){
@@ -74,17 +89,38 @@
         }
     }
 
+    /**
+     * 只有起始点所在轨道可以绘制
+     **/
+    function calcPaintCircleFlag(index){
+        paintFlagList = [
+            false, false, false,
+            false, false, false,
+            false, false, false,
+            false, false, false,
+            false, false, false,
+            false, false, false]
+        paintFlagList[index] = true
+        console.log(paintFlagList)
+    }
+
     /*计算终点*/
     function calcEndRadius(){
         let sum = Math.pow(moveMouse.x-CENTER_X, 2)+ Math.pow(CENTER_Y-moveMouse.y, 2);
         let ret = calcAngle();
         // 第一个职业
         if(sum < Math.pow(100,2) && sum > Math.pow(50,2)){
-            paint("green", 75, startAngle11 ,ret);
+            if(paintFlagList[0]){
+                paint("green", 75, startAngle11 ,ret);
+            }
         }else if(sum < Math.pow(150,2) && sum > Math.pow(100,2)){
-            paint("green", 125, startAngle12 ,ret);
+            if(paintFlagList[1]){
+                paint("green", 125, startAngle12 ,ret);
+            }
         }else if(sum < Math.pow(200,2) && sum > Math.pow(150,2)){
-            paint("green", 175, startAngle13 ,ret);
+            if(paintFlagList[2]){
+                paint("green", 175, startAngle13 ,ret);
+            }
         }
         // 第二个职业
         else if(sum < Math.pow(300,2) && sum > Math.pow(250,2)){