|
@@ -21,14 +21,26 @@
|
|
|
|
|
|
// 第一个职业
|
|
// 第一个职业
|
|
let startAngle11 = 0;
|
|
let startAngle11 = 0;
|
|
|
|
+ let start11Flag = false;
|
|
let startAngle12 = 0;
|
|
let startAngle12 = 0;
|
|
|
|
+ let start12Flag = false;
|
|
let startAngle13 = 0;
|
|
let startAngle13 = 0;
|
|
|
|
+ let start13Flag = false;
|
|
|
|
|
|
// 第二个职业
|
|
// 第二个职业
|
|
let startAngle21 = 0;
|
|
let startAngle21 = 0;
|
|
let startAngle22 = 0;
|
|
let startAngle22 = 0;
|
|
let startAngle23 = 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 undoList = []; // 用于保存所有操作,用于撤销和重做
|
|
let redoList = []; // 用于保存所有撤销的操作,用于重做
|
|
let redoList = []; // 用于保存所有撤销的操作,用于重做
|
|
|
|
|
|
@@ -42,8 +54,6 @@
|
|
moveMouse.y = startMouse.y;
|
|
moveMouse.y = startMouse.y;
|
|
startMouse.x = e.pageX - this.offsetLeft;
|
|
startMouse.x = e.pageX - this.offsetLeft;
|
|
startMouse.y = e.pageY - this.offsetTop;
|
|
startMouse.y = e.pageY - this.offsetTop;
|
|
- /* console.log("last_mouse.x="+moveMouse.x);
|
|
|
|
- console.log("last_mouse.y="+moveMouse.y);*/
|
|
|
|
if(startMouse.x !== moveMouse.x && startMouse.y !== moveMouse.y){
|
|
if(startMouse.x !== moveMouse.x && startMouse.y !== moveMouse.y){
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -61,40 +71,73 @@
|
|
// 第一个职业
|
|
// 第一个职业
|
|
if(sum < Math.pow(100,2) && sum > Math.pow(50,2)){
|
|
if(sum < Math.pow(100,2) && sum > Math.pow(50,2)){
|
|
startAngle11 = calcAngle();
|
|
startAngle11 = calcAngle();
|
|
|
|
+ calcPaintCircleFlag(0)
|
|
}else if(sum < Math.pow(150,2) && sum > Math.pow(100,2)){
|
|
}else if(sum < Math.pow(150,2) && sum > Math.pow(100,2)){
|
|
startAngle12 = calcAngle();
|
|
startAngle12 = calcAngle();
|
|
|
|
+ calcPaintCircleFlag(1)
|
|
}else if(sum < Math.pow(200,2) && sum > Math.pow(150,2)){
|
|
}else if(sum < Math.pow(200,2) && sum > Math.pow(150,2)){
|
|
startAngle13 = calcAngle();
|
|
startAngle13 = calcAngle();
|
|
|
|
+ calcPaintCircleFlag(2)
|
|
}
|
|
}
|
|
// 第二个职业
|
|
// 第二个职业
|
|
else if(sum < Math.pow(300,2) && sum > Math.pow(250,2)){
|
|
else if(sum < Math.pow(300,2) && sum > Math.pow(250,2)){
|
|
startAngle21 = calcAngle();
|
|
startAngle21 = calcAngle();
|
|
|
|
+ calcPaintCircleFlag(3)
|
|
}else if(sum < Math.pow(350,2) && sum > Math.pow(300,2)){
|
|
}else if(sum < Math.pow(350,2) && sum > Math.pow(300,2)){
|
|
startAngle22 = calcAngle();
|
|
startAngle22 = calcAngle();
|
|
|
|
+ calcPaintCircleFlag(4)
|
|
}else if(sum < Math.pow(400,2) && sum > Math.pow(350,2)){
|
|
}else if(sum < Math.pow(400,2) && sum > Math.pow(350,2)){
|
|
startAngle23 = calcAngle();
|
|
startAngle23 = calcAngle();
|
|
|
|
+ calcPaintCircleFlag(5)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 只有起始点所在轨道可以绘制
|
|
|
|
+ **/
|
|
|
|
+ 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(){
|
|
function calcEndRadius(){
|
|
let sum = Math.pow(moveMouse.x-CENTER_X, 2)+ Math.pow(CENTER_Y-moveMouse.y, 2);
|
|
let sum = Math.pow(moveMouse.x-CENTER_X, 2)+ Math.pow(CENTER_Y-moveMouse.y, 2);
|
|
let ret = calcAngle();
|
|
let ret = calcAngle();
|
|
// 第一个职业
|
|
// 第一个职业
|
|
if(sum < Math.pow(100,2) && sum > Math.pow(50,2)){
|
|
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)){
|
|
}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)){
|
|
}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)){
|
|
else if(sum < Math.pow(300,2) && sum > Math.pow(250,2)){
|
|
- paint("#ffd309", 275, startAngle21 ,ret);
|
|
|
|
|
|
+ if(paintFlagList[3]){
|
|
|
|
+ paint("#ffd309", 275, startAngle21 ,ret);
|
|
|
|
+ }
|
|
}else if(sum < Math.pow(350,2) && sum > Math.pow(300,2)){
|
|
}else if(sum < Math.pow(350,2) && sum > Math.pow(300,2)){
|
|
- paint("#ffd309", 325, startAngle22 ,ret);
|
|
|
|
|
|
+ if(paintFlagList[4]){
|
|
|
|
+ paint("#ffd309", 325, startAngle22 ,ret);
|
|
|
|
+ }
|
|
}else if(sum < Math.pow(400,2) && sum > Math.pow(350,2)){
|
|
}else if(sum < Math.pow(400,2) && sum > Math.pow(350,2)){
|
|
- paint("#ffd309", 375, startAngle23 ,ret);
|
|
|
|
|
|
+ if(paintFlagList[5]){
|
|
|
|
+ paint("#ffd309", 375, startAngle23 ,ret);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -109,7 +152,7 @@
|
|
ret += 450;
|
|
ret += 450;
|
|
}
|
|
}
|
|
let num = ret * Math.PI/180 +Math.PI;
|
|
let num = ret * Math.PI/180 +Math.PI;
|
|
- // console.log('角度:'+num);
|
|
|
|
|
|
+ console.log('角度:'+num);
|
|
return num;
|
|
return num;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -130,6 +173,10 @@
|
|
|
|
|
|
|
|
|
|
function paint(color, radius, startAngle, endAngle){
|
|
function paint(color, radius, startAngle, endAngle){
|
|
|
|
+ // 结束角度不能小于起始角度
|
|
|
|
+ if(endAngle <= startAngle){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
context.lineWidth = 50;
|
|
context.lineWidth = 50;
|
|
context.strokeStyle = color;
|
|
context.strokeStyle = color;
|
|
context.beginPath();
|
|
context.beginPath();
|