2263 lines
121 KiB
HTML
2263 lines
121 KiB
HTML
<!DOCTYPE html>
|
||
<!-- <html lang="en" id="container" onmousedown="startDrag(event)" onmouseup="stopDrag(event)" onmousemove="dragging(event)"
|
||
style="overflow-x: hidden;
|
||
overflow-y: hidden; "> -->
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<script src="../jquery-2.1.0.min.js"></script>
|
||
<script src="../jquery.cookie.js"></script>
|
||
<script type="text/javascript" src="../Lu_Math_Driver.js"></script>
|
||
<script type="text/javascript" src="../Lu_Learn_Driver.js"></script>
|
||
<script type="text/javascript" src="../paperjs-v0.12.15/docs/assets/js/paper.js"></script>
|
||
<script type="text/javascript">
|
||
var Car_Global_rx = 0;
|
||
var Car_Global_ry = 0;
|
||
var Car_Global_Theta = 0;
|
||
|
||
var Last_Rec_Car_Global_rx = 0;
|
||
var Last_Rec_Car_Global_ry = 0;
|
||
var Last_Rec_Car_Global_Theta = 0;
|
||
var CarGlobalPositionRecArr = new Array();
|
||
var LastCarGlobalPositionRecArrLen = 0;
|
||
var CarGlobalPositionRecSch = 0;
|
||
|
||
var Learn_Ref_State = false;
|
||
var Learn_Ref_NodeID = 0;
|
||
var Learn_Ref_Node_x = 0.0;
|
||
var Learn_Ref_Node_y = 0.0;
|
||
var Learn_Ref_Node_t = 0.0;
|
||
|
||
paper.install(window);
|
||
var ZoomMin = 1e-4;
|
||
var ZoomMax = 1e3;
|
||
var Resolution = 20.0;
|
||
|
||
const ScreenPanInitx = 100.0;
|
||
const ScreenPanInity = 300.0;
|
||
var ZoomInit = 1.0;
|
||
var ScreenPanRecord = new Point(ScreenPanInitx, ScreenPanInity);
|
||
var ZoomRecord = ZoomInit;
|
||
|
||
var draw_sch = 0;
|
||
var period_times = 0;
|
||
|
||
var HMI_Sketch_Left = "";
|
||
|
||
var HMI_Sketch_Left_LearnLineAB_Sch = "";
|
||
var LearnLineAB_Sch = 0;
|
||
var LearnLineAB_PointA_rx = 0;
|
||
var LearnLineAB_PointA_ry = 0;
|
||
var LearnLineAB_PointA_rt = 0;
|
||
var LearnLineAB_PointB_rx = 0;
|
||
var LearnLineAB_PointB_ry = 0;
|
||
var LearnLineAB_PointB_rt = 0;
|
||
var LearnLineAB_Direction = "";
|
||
|
||
var HMI_Sketch_Left_LearnLineAH_Sch = "";
|
||
var LearnLineAH_Sch = 0;
|
||
var LearnLineAH_PointA_rx = 0;
|
||
var LearnLineAH_PointA_ry = 0;
|
||
var LearnLineAH_PointA_rt = 0;
|
||
var LearnLineAH_PointB_rx = 0;
|
||
var LearnLineAH_PointB_ry = 0;
|
||
var LearnLineAH_PointB_rt = 0;
|
||
var LearnLineAH_Direction = "";
|
||
var AH_Global_rx = 0;
|
||
var AH_Global_ry = 0;
|
||
var AH_Global_rt = 0;
|
||
|
||
var HMI_Sketch_Left_LearnBezierAB_Sch = "";
|
||
var LearnBezierAB_Sch = 0;
|
||
var LearnBezierAB_PointA_rx = 0;
|
||
var LearnBezierAB_PointA_ry = 0;
|
||
var LearnBezierAB_PointA_rt = 0;
|
||
var LearnBezierAB_PointB_rx = 0;
|
||
var LearnBezierAB_PointB_ry = 0;
|
||
var LearnBezierAB_PointB_rt = 0;
|
||
var LearnBezierAB_Direction = "";
|
||
var LearnBezierAB_Slider1 = 0;
|
||
var LearnBezierAB_Slider2 = 0;
|
||
var LearnBezierAB_Slider3 = 0;
|
||
var LearnBezierAB_ANext_rx = 0;
|
||
var LearnBezierAB_ANext_ry = 0;
|
||
var LearnBezierAB_BLast_rx = 0;
|
||
var LearnBezierAB_BLast_ry = 0;
|
||
|
||
const step = 0.05;
|
||
var step_num = (Math.floor)(1 / step) + 1;
|
||
console.log("step_num:" + step_num);
|
||
|
||
var HMI_Sketch_Left_LearnWayPointAB_Sch = "";
|
||
var LearnWayPointAB_Sch = 0;
|
||
var LearnWayPointRecArr = new Array();
|
||
var LastLearnWayPointRecArrLen = 0;
|
||
var LearnWayPointAB_Direction = "";
|
||
|
||
var HMI_Sketch_Left_LearnWayPointAB3_Sch = "";
|
||
var LearnWayPointAB3_Sch = 0;
|
||
var LearnWayPoint3RecArr = new Array();
|
||
var LastLearnWayPoint3RecArrLen = 0;
|
||
var LearnWayPointAB3_Direction = "";
|
||
|
||
var HMI_Sketch_Left_LearnWayPointAB4_Sch = "";
|
||
var LearnWayPointAB4_Sch = 0;
|
||
var LearnWayPoint4RecArr = new Array();
|
||
var LastLearnWayPoint4RecArrLen = 0;
|
||
var LearnWayPointAB4_Direction = "";
|
||
|
||
var ButtonImage_Vertical_FollowCar = false;
|
||
|
||
var sleep = function(time) {
|
||
var startTime = new Date().getTime() + parseInt(time, 10);
|
||
while (new Date().getTime() < startTime) {}
|
||
};
|
||
|
||
function addEvent(obj, xEvent, fn) {
|
||
if (obj.attachEvent) {
|
||
obj.attachEvent('on' + xEvent, fn);
|
||
} else {
|
||
obj.addEventListener(xEvent, fn, false);
|
||
}
|
||
}
|
||
|
||
function client_request(str) {
|
||
$('#output').html("");
|
||
window.parent.postMessage({
|
||
event_id: 'client_request',
|
||
data: {
|
||
v1: str
|
||
}
|
||
},
|
||
"*" //or "www.parentpage.com"
|
||
);
|
||
}
|
||
|
||
|
||
var Get_LearnPathTable_File_OK = false;
|
||
var Get_LearnNodePointManagerTable_File_OK = false;
|
||
var Get_LearnPointCloud_File_OK = false;
|
||
|
||
|
||
|
||
function Lu_Parse_HMI_Sketch_Left() {
|
||
switch (HMI_Sketch_Left) {
|
||
case "LearnWayPointAB": {
|
||
LearnBezierAB_Sch = 0;
|
||
LearnLineAB_Sch = 0;
|
||
LearnLineAH_Sch = 0;
|
||
LearnWayPointAB3_Sch = 0;
|
||
LearnWayPointAB4_Sch = 0;
|
||
}
|
||
break;
|
||
case "LearnWayPointAB3": {
|
||
LearnBezierAB_Sch = 0;
|
||
LearnLineAB_Sch = 0;
|
||
LearnLineAH_Sch = 0;
|
||
LearnWayPointAB_Sch = 0;
|
||
LearnWayPointAB4_Sch = 0;
|
||
}
|
||
break;
|
||
case "LearnWayPointAB4": {
|
||
LearnBezierAB_Sch = 0;
|
||
LearnLineAB_Sch = 0;
|
||
LearnLineAH_Sch = 0;
|
||
LearnWayPointAB_Sch = 0;
|
||
LearnWayPointAB3_Sch = 0;
|
||
}
|
||
break;
|
||
case "LearnLineAB": {
|
||
LearnBezierAB_Sch = 0;
|
||
LearnWayPointAB_Sch = 0;
|
||
LearnWayPointAB3_Sch = 0;
|
||
LearnWayPointAB4_Sch = 0;
|
||
LearnLineAH_Sch = 0;
|
||
}
|
||
break;
|
||
case "LearnLineAH": {
|
||
LearnBezierAB_Sch = 0;
|
||
LearnWayPointAB_Sch = 0;
|
||
LearnWayPointAB3_Sch = 0;
|
||
LearnWayPointAB4_Sch = 0;
|
||
LearnLineAB_Sch = 0;
|
||
}
|
||
break;
|
||
case "LearnBezierAB": {
|
||
LearnLineAB_Sch = 0;
|
||
LearnLineAH_Sch = 0;
|
||
LearnWayPointAB_Sch = 0;
|
||
LearnWayPointAB3_Sch = 0;
|
||
LearnWayPointAB4_Sch = 0;
|
||
}
|
||
break;
|
||
case "Main": {
|
||
LearnLineAB_Sch = 0;
|
||
LearnLineAH_Sch = 0;
|
||
LearnBezierAB_Sch = 0;
|
||
LearnWayPointAB_Sch = 0;
|
||
LearnWayPointAB3_Sch = 0;
|
||
LearnWayPointAB4_Sch = 0;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
|
||
function Lu_Parse_LearnLineAB_Sch() {
|
||
if (HMI_Sketch_Left_LearnLineAB_Sch != "") {
|
||
var frame = HMI_Sketch_Left_LearnLineAB_Sch.split('#');
|
||
var head = frame[0];
|
||
var item = head.split(';');
|
||
var sch_item = item[0];
|
||
var sch_item_info = sch_item.split(':');
|
||
LearnLineAB_Sch = sch_item_info[1];
|
||
var PointA_item = item[1];
|
||
var PointA_item_info = PointA_item.split(':');
|
||
var PointA_item_info_data = PointA_item_info[1];
|
||
var PointA_item_info_data_arr = PointA_item_info_data.split(',');
|
||
LearnLineAB_PointA_rx = parseFloat(PointA_item_info_data_arr[0]);
|
||
LearnLineAB_PointA_ry = parseFloat(PointA_item_info_data_arr[1]);
|
||
LearnLineAB_PointA_rt = parseFloat(PointA_item_info_data_arr[2]);
|
||
var PointB_item = item[2];
|
||
var PointB_item_info = PointB_item.split(':');
|
||
var PointB_item_info_data = PointB_item_info[1];
|
||
var PointB_item_info_data_arr = PointB_item_info_data.split(',');
|
||
LearnLineAB_PointB_rx = parseFloat(PointB_item_info_data_arr[0]);
|
||
LearnLineAB_PointB_ry = parseFloat(PointB_item_info_data_arr[1]);
|
||
LearnLineAB_PointB_rt = parseFloat(PointB_item_info_data_arr[2]);
|
||
|
||
var direction_item = item[3];
|
||
var direction_item_info = direction_item.split(':');
|
||
LearnLineAB_Direction = direction_item_info[1];
|
||
|
||
} else {
|
||
//LearnLineAB_Sch=0;
|
||
}
|
||
}
|
||
|
||
function Lu_Parse_LearnLineAH_Sch() {
|
||
if (HMI_Sketch_Left_LearnLineAH_Sch != "") {
|
||
var frame = HMI_Sketch_Left_LearnLineAH_Sch.split('#');
|
||
var head = frame[0];
|
||
var item = head.split(';');
|
||
var sch_item = item[0];
|
||
var sch_item_info = sch_item.split(':');
|
||
LearnLineAH_Sch = sch_item_info[1];
|
||
var PointA_item = item[1];
|
||
var PointA_item_info = PointA_item.split(':');
|
||
var PointA_item_info_data = PointA_item_info[1];
|
||
var PointA_item_info_data_arr = PointA_item_info_data.split(',');
|
||
LearnLineAH_PointA_rx = parseFloat(PointA_item_info_data_arr[0]);
|
||
LearnLineAH_PointA_ry = parseFloat(PointA_item_info_data_arr[1]);
|
||
LearnLineAH_PointA_rt = parseFloat(PointA_item_info_data_arr[2]);
|
||
var PointB_item = item[2];
|
||
var PointB_item_info = PointB_item.split(':');
|
||
var PointB_item_info_data = PointB_item_info[1];
|
||
var PointB_item_info_data_arr = PointB_item_info_data.split(',');
|
||
LearnLineAH_PointB_rx = parseFloat(PointB_item_info_data_arr[0]);
|
||
LearnLineAH_PointB_ry = parseFloat(PointB_item_info_data_arr[1]);
|
||
LearnLineAH_PointB_rt = parseFloat(PointB_item_info_data_arr[2]);
|
||
|
||
var direction_item = item[3];
|
||
var direction_item_info = direction_item.split(':');
|
||
LearnLineAH_Direction = direction_item_info[1];
|
||
} else {
|
||
//LearnLineAH_Sch=0;
|
||
}
|
||
}
|
||
|
||
function Lu_Parse_LearnWayPointAB4_Sch() {
|
||
if (HMI_Sketch_Left_LearnWayPointAB4_Sch != "") {
|
||
//console.log(HMI_Sketch_Left_LearnWayPointAB4_Sch);
|
||
var frame = HMI_Sketch_Left_LearnWayPointAB4_Sch.split('#');
|
||
var head = frame[0];
|
||
var item = head.split(';');
|
||
var sch_item = item[0];
|
||
var sch_item_info = sch_item.split(':');
|
||
LearnWayPointAB4_Sch = sch_item_info[1];
|
||
|
||
LearnWayPoint4RecArr = [];
|
||
|
||
for (let i = 1; i < item.length; i++) {
|
||
var item_sub = item[i].split(":");
|
||
if (item_sub[0] == "Point") {
|
||
var item_sub_info_data_arr = item_sub[1].split(',');
|
||
var Rec_WP = new Object();
|
||
Rec_WP.Car_Global_rx = parseFloat(item_sub_info_data_arr[0]);
|
||
Rec_WP.Car_Global_ry = parseFloat(item_sub_info_data_arr[1]);
|
||
Rec_WP.Car_Global_Theta = parseFloat(item_sub_info_data_arr[2]);
|
||
LearnWayPoint4RecArr.push(Rec_WP);
|
||
} else if (item_sub[0] == "Direction") {
|
||
LearnWayPointAB4_Direction = item_sub[1];
|
||
}
|
||
}
|
||
} else {
|
||
|
||
}
|
||
//console.log(LearnWayPointRecArr);
|
||
}
|
||
|
||
function Lu_Parse_LearnWayPointAB3_Sch() {
|
||
if (HMI_Sketch_Left_LearnWayPointAB3_Sch != "") {
|
||
//console.log(HMI_Sketch_Left_LearnWayPointAB3_Sch);
|
||
var frame = HMI_Sketch_Left_LearnWayPointAB3_Sch.split('#');
|
||
var head = frame[0];
|
||
var item = head.split(';');
|
||
var sch_item = item[0];
|
||
var sch_item_info = sch_item.split(':');
|
||
LearnWayPointAB3_Sch = sch_item_info[1];
|
||
|
||
LearnWayPoint3RecArr = [];
|
||
|
||
for (let i = 1; i < item.length; i++) {
|
||
var item_sub = item[i].split(":");
|
||
if (item_sub[0] == "Point") {
|
||
var item_sub_info_data_arr = item_sub[1].split(',');
|
||
var Rec_WP = new Object();
|
||
Rec_WP.Car_Global_rx = parseFloat(item_sub_info_data_arr[0]);
|
||
Rec_WP.Car_Global_ry = parseFloat(item_sub_info_data_arr[1]);
|
||
Rec_WP.Car_Global_Theta = parseFloat(item_sub_info_data_arr[2]);
|
||
LearnWayPoint3RecArr.push(Rec_WP);
|
||
} else if (item_sub[0] == "Direction") {
|
||
LearnWayPointAB3_Direction = item_sub[1];
|
||
}
|
||
}
|
||
} else {
|
||
|
||
}
|
||
//console.log(LearnWayPointRecArr);
|
||
}
|
||
|
||
function Lu_Parse_LearnWayPointAB_Sch() {
|
||
if (HMI_Sketch_Left_LearnWayPointAB_Sch != "") {
|
||
console.log(HMI_Sketch_Left_LearnWayPointAB_Sch);
|
||
var frame = HMI_Sketch_Left_LearnWayPointAB_Sch.split('#');
|
||
var head = frame[0];
|
||
var item = head.split(';');
|
||
var sch_item = item[0];
|
||
var sch_item_info = sch_item.split(':');
|
||
LearnWayPointAB_Sch = sch_item_info[1];
|
||
|
||
LearnWayPointRecArr = [];
|
||
|
||
for (let i = 1; i < item.length; i++) {
|
||
var item_sub = item[i].split(":");
|
||
if (item_sub[0] == "Point") {
|
||
var item_sub_info_data_arr = item_sub[1].split(',');
|
||
var Rec_WP = new Object();
|
||
Rec_WP.Car_Global_rx = parseFloat(item_sub_info_data_arr[0]);
|
||
Rec_WP.Car_Global_ry = parseFloat(item_sub_info_data_arr[1]);
|
||
Rec_WP.Car_Global_Theta = parseFloat(item_sub_info_data_arr[2]);
|
||
LearnWayPointRecArr.push(Rec_WP);
|
||
} else if (item_sub[0] == "Direction") {
|
||
LearnWayPointAB_Direction = item_sub[1];
|
||
}
|
||
}
|
||
} else {
|
||
|
||
}
|
||
//console.log(LearnWayPointRecArr);
|
||
}
|
||
|
||
function Lu_Parse_LearnBezierAB_Sch() {
|
||
if (HMI_Sketch_Left_LearnBezierAB_Sch != "") {
|
||
//console.log(HMI_Sketch_Left_LearnBezierAB_Sch);
|
||
var frame = HMI_Sketch_Left_LearnBezierAB_Sch.split('#');
|
||
var head = frame[0];
|
||
var item = head.split(';');
|
||
var sch_item = item[0];
|
||
var sch_item_info = sch_item.split(':');
|
||
LearnBezierAB_Sch = sch_item_info[1];
|
||
//console.log("LearnBezierAB_Sch:"+LearnBezierAB_Sch);
|
||
var PointA_item = item[1];
|
||
var PointA_item_info = PointA_item.split(':');
|
||
var PointA_item_info_data = PointA_item_info[1];
|
||
var PointA_item_info_data_arr = PointA_item_info_data.split(',');
|
||
LearnBezierAB_PointA_rx = parseFloat(PointA_item_info_data_arr[0]);
|
||
LearnBezierAB_PointA_ry = parseFloat(PointA_item_info_data_arr[1]);
|
||
LearnBezierAB_PointA_rt = parseFloat(PointA_item_info_data_arr[2]);
|
||
var PointB_item = item[2];
|
||
var PointB_item_info = PointB_item.split(':');
|
||
var PointB_item_info_data = PointB_item_info[1];
|
||
var PointB_item_info_data_arr = PointB_item_info_data.split(',');
|
||
LearnBezierAB_PointB_rx = parseFloat(PointB_item_info_data_arr[0]);
|
||
LearnBezierAB_PointB_ry = parseFloat(PointB_item_info_data_arr[1]);
|
||
LearnBezierAB_PointB_rt = parseFloat(PointB_item_info_data_arr[2]);
|
||
var direction_item = item[3];
|
||
var direction_item_info = direction_item.split(':');
|
||
LearnBezierAB_Direction = direction_item_info[1];
|
||
var slider_item = item[4];
|
||
var slider_item_info = slider_item.split(':');
|
||
var slider_item_info_data = slider_item_info[1];
|
||
var slider_item_info_data_arr = slider_item_info_data.split(',');
|
||
LearnBezierAB_Slider1 = parseInt(slider_item_info_data_arr[0]);
|
||
LearnBezierAB_Slider2 = parseInt(slider_item_info_data_arr[1]);
|
||
LearnBezierAB_Slider3 = parseInt(slider_item_info_data_arr[2]);
|
||
//console.log('Slider1:'+LearnBezierAB_Slider1+" Slider2:"+LearnBezierAB_Slider2);
|
||
var LearnBezierAB_ANext = Lu_GetBezier_SP_Next_Point(
|
||
LearnBezierAB_PointA_rx,
|
||
LearnBezierAB_PointA_ry,
|
||
LearnBezierAB_PointA_rt,
|
||
LearnBezierAB_Direction,
|
||
LearnBezierAB_Slider3, LearnBezierAB_Slider1);
|
||
|
||
LearnBezierAB_ANext_rx = LearnBezierAB_ANext.x;
|
||
LearnBezierAB_ANext_ry = LearnBezierAB_ANext.y;
|
||
|
||
var LearnBezierAB_BLast = Lu_GetBezier_EP_Last_Point(
|
||
LearnBezierAB_PointB_rx,
|
||
LearnBezierAB_PointB_ry,
|
||
LearnBezierAB_PointB_rt,
|
||
LearnBezierAB_Direction,
|
||
LearnBezierAB_Slider3, LearnBezierAB_Slider2);
|
||
|
||
LearnBezierAB_BLast_rx = LearnBezierAB_BLast.x;
|
||
LearnBezierAB_BLast_ry = LearnBezierAB_BLast.y;
|
||
|
||
//console.log("("+LearnBezierAB_ANext_rx+","+LearnBezierAB_ANext_ry+")"+"("+LearnBezierAB_BLast_rx+","+LearnBezierAB_BLast_ry+")");
|
||
|
||
} else {
|
||
|
||
}
|
||
}
|
||
var time_count = 0;
|
||
var client_sch = 0;
|
||
|
||
function Timer() {
|
||
$.cookie("AH_Global_rx", AH_Global_rx, {
|
||
secure: true
|
||
});
|
||
$.cookie("AH_Global_ry", AH_Global_ry, {
|
||
secure: true
|
||
});
|
||
$.cookie("AH_Global_rt", AH_Global_rt, {
|
||
secure: true
|
||
});
|
||
|
||
Car_Global_rx = parseFloat($.cookie('Car_Global_rx')); //Car_Global_rx=parseFloat(getCookie('Car_Global_rx'));
|
||
Car_Global_ry = parseFloat($.cookie('Car_Global_ry')); //Car_Global_ry=parseFloat(getCookie('Car_Global_ry'));
|
||
Car_Global_Theta = parseFloat($.cookie(
|
||
'Car_Global_Theta')); //Car_Global_Theta=parseFloat(getCookie('Car_Global_Theta'));
|
||
//console.log("Timer rx:"+Car_Global_rx+" ry:"+Car_Global_ry+" rt:"+Car_Global_Theta);
|
||
HMI_Sketch_Left = $.cookie('HMI_Sketch_Left'); //HMI_Sketch_Left=getCookie('HMI_Sketch_Left');
|
||
Lu_Parse_HMI_Sketch_Left();
|
||
if ($.cookie('LearnLineAB_Sch') != null) HMI_Sketch_Left_LearnLineAB_Sch = decodeURIComponent($.cookie(
|
||
'LearnLineAB_Sch'
|
||
)); //HMI_Sketch_Left_LearnLineAB_Sch=$.cookie('LearnLineAB_Sch');//HMI_Sketch_Left_LearnLineAB_Sch=decodeURIComponent(getCookie('LearnLineAB_Sch'));
|
||
if ($.cookie('LearnLineAH_Sch') != null) HMI_Sketch_Left_LearnLineAH_Sch = decodeURIComponent($.cookie(
|
||
'LearnLineAH_Sch'));
|
||
if ($.cookie('LearnBezierAB_Sch') != null) HMI_Sketch_Left_LearnBezierAB_Sch = decodeURIComponent($.cookie(
|
||
'LearnBezierAB_Sch'
|
||
)); //HMI_Sketch_Left_LearnBezierAB_Sch=decodeURIComponent(getCookie('LearnBezierAB_Sch'));
|
||
if ($.cookie('LearnWayPointAB_Sch') != null) HMI_Sketch_Left_LearnWayPointAB_Sch = decodeURIComponent($.cookie(
|
||
'LearnWayPointAB_Sch'
|
||
)); //HMI_Sketch_Left_LearnWayPointAB_Sch=decodeURIComponent(getCookie('LearnWayPointAB_Sch'));
|
||
if ($.cookie('LearnWayPointAB3_Sch') != null) HMI_Sketch_Left_LearnWayPointAB3_Sch = decodeURIComponent($.cookie(
|
||
'LearnWayPointAB3_Sch'
|
||
)); //HMI_Sketch_Left_LearnWayPointAB3_Sch=decodeURIComponent(getCookie('LearnWayPointAB3_Sch'));
|
||
if ($.cookie('LearnWayPointAB4_Sch') != null) HMI_Sketch_Left_LearnWayPointAB4_Sch = decodeURIComponent($.cookie(
|
||
'LearnWayPointAB4_Sch'
|
||
)); //HMI_Sketch_Left_LearnWayPointAB4_Sch=decodeURIComponent(getCookie('LearnWayPointAB4_Sch'));
|
||
//console.log("HMI_Sketch_Left_LearnBezierAB_Sch"+HMI_Sketch_Left_LearnBezierAB_Sch);
|
||
//console.log("HMI_Sketch_Left_LearnWayPointAB_Sch"+HMI_Sketch_Left_LearnWayPointAB_Sch);
|
||
Lu_Parse_LearnLineAB_Sch();
|
||
Lu_Parse_LearnLineAH_Sch();
|
||
Lu_Parse_LearnBezierAB_Sch();
|
||
Lu_Parse_LearnWayPointAB_Sch();
|
||
Lu_Parse_LearnWayPointAB3_Sch();
|
||
Lu_Parse_LearnWayPointAB4_Sch();
|
||
|
||
Learn_Ref_State = $.cookie('Learn_Ref_State'); //Learn_Ref_State=getCookie('Learn_Ref_State');
|
||
Learn_Ref_NodeID = $.cookie('Learn_Ref_NodeID'); //Learn_Ref_NodeID=getCookie('Learn_Ref_NodeID');
|
||
Learn_Ref_Node_x = parseFloat($.cookie(
|
||
'Learn_Ref_Node_x')); //Learn_Ref_Node_x=parseFloat(getCookie('Learn_Ref_Node_x'));
|
||
Learn_Ref_Node_y = parseFloat($.cookie(
|
||
'Learn_Ref_Node_y')); //Learn_Ref_Node_y=parseFloat(getCookie('Learn_Ref_Node_y'));
|
||
Learn_Ref_Node_t = parseFloat($.cookie(
|
||
'Learn_Ref_Node_t')); //Learn_Ref_Node_t=parseFloat(getCookie('Learn_Ref_Node_t'));
|
||
//console.log(Learn_Ref_State+" "+Learn_Ref_Node_x+" "+Learn_Ref_Node_y+" "+Learn_Ref_Node_t);
|
||
|
||
//console.log(HMI_Sketch_Left);
|
||
//console.log(HMI_Sketch_Left_LearnLineAB_Sch);
|
||
//console.log(HMI_Sketch_Left_LearnBezierAB_Sch);
|
||
//console.log(LearnLineAB_Sch);
|
||
//console.log(LearnLineAB_PointA_rx+" "+LearnLineAB_PointA_ry+" "+LearnLineAB_PointA_rt+" "+LearnLineAB_PointB_rx+" "+LearnLineAB_PointB_ry+" "+LearnLineAB_PointB_rt);
|
||
|
||
if ( /*LearnLineAB_Sch>0 ||*/ (LearnBezierAB_Sch > 0 && LearnBezierAB_Sch < 4) || (LearnWayPointAB_Sch > 0 &&
|
||
LearnWayPointAB_Sch < 4) || (LearnWayPointAB3_Sch > 0 && LearnWayPointAB3_Sch < 4) || (
|
||
LearnWayPointAB4_Sch > 0 && LearnWayPointAB4_Sch < 4)) {
|
||
CarGlobalPositionRecSch = 1;
|
||
} else {
|
||
CarGlobalPositionRecSch = 0;
|
||
}
|
||
//console.log("LearnBezierAB_Sch:"+LearnBezierAB_Sch);
|
||
//console.log("LearnWayPointAB_Sch:"+LearnWayPointAB_Sch);
|
||
|
||
if (CarGlobalPositionRecSch == 1) {
|
||
var dist = Lu_Get_Dist(Car_Global_rx, Car_Global_ry, Last_Rec_Car_Global_rx, Last_Rec_Car_Global_ry);
|
||
var anglediff = Car_Global_Theta - Last_Rec_Car_Global_Theta;
|
||
anglediff = Lu_Normal_Deg(-180, 180, anglediff);
|
||
if (dist > 0.5 || (Math.abs(anglediff) > 1 && dist < 0.05) || CarGlobalPositionRecArr.length == 0) {
|
||
var Rec_Position = new Object();
|
||
Rec_Position.Car_Global_rx = Car_Global_rx;
|
||
Rec_Position.Car_Global_ry = Car_Global_ry;
|
||
Rec_Position.Car_Global_Theta = Car_Global_Theta;
|
||
CarGlobalPositionRecArr.push(Rec_Position);
|
||
Last_Rec_Car_Global_rx = Car_Global_rx;
|
||
Last_Rec_Car_Global_ry = Car_Global_ry;
|
||
Last_Rec_Car_Global_Theta = Car_Global_Theta;
|
||
|
||
|
||
//console.log(CarGlobalPositionRecArr);
|
||
}
|
||
} else {
|
||
CarGlobalPositionRecArr = [];
|
||
}
|
||
/*
|
||
if(client_sch==0){
|
||
client_request("GetLearnPathTable");
|
||
client_sch=1;
|
||
}
|
||
else if(client_sch==1){
|
||
client_request("GetLearnNodePointManagerTable");
|
||
client_sch=2;
|
||
}
|
||
else if(client_sch==2){
|
||
client_request("GetLearnPointCloud");
|
||
client_sch=3;
|
||
}*/
|
||
|
||
if (time_count == 0) {
|
||
/*if (Get_LearnPathTable_File_OK == false) client_request("GetLearnPathTable");
|
||
if (Get_LearnPathTable_File_OK == true && Get_LearnNodePointManagerTable_File_OK == false) client_request("GetLearnNodePointManagerTable");
|
||
if (Get_LearnPathTable_File_OK == true && Get_LearnNodePointManagerTable_File_OK == true && Get_LearnPointCloud_File_OK == false) client_request("GetLearnPointCloud");
|
||
*/
|
||
client_request("GetLearnPathTable");
|
||
client_request("GetLearnNodePointManagerTable");
|
||
client_request("GetLearnPointCloud");
|
||
//console.log("===========================client_request============================");
|
||
}
|
||
time_count++;
|
||
if (time_count > 10) {
|
||
if (Get_LearnPathTable_File_OK == false || Get_LearnNodePointManagerTable_File_OK == false ||
|
||
Get_LearnPointCloud_File_OK == false) time_count = 0;
|
||
}
|
||
}
|
||
|
||
window.setInterval("Timer()", 100);
|
||
|
||
function Lu_TransferModelToCanvasForCoordinateCanvas(Model, OriginCanvasInitPosition) {
|
||
var canvas = document.getElementById('myCanvas');
|
||
var canvas_height = parseFloat(canvas.style.height);
|
||
var x = Model.x * Resolution + OriginCanvasInitPosition.x;
|
||
var y = canvas_height - Model.y * Resolution + OriginCanvasInitPosition.y;
|
||
var obj = new Object();
|
||
obj.x = x;
|
||
obj.y = y;
|
||
return obj;
|
||
}
|
||
|
||
function Lu_TransferModelToCanvasWithCoordinateCanvas(Model, CoordinateCanvasLine) {
|
||
var canvas = document.getElementById('myCanvas');
|
||
// *20 (x = 100 , y == 300)
|
||
var x = Model.x * Resolution + CoordinateCanvasLine.OriginCanvasPosition.x;
|
||
var y = 0 - Model.y * Resolution + CoordinateCanvasLine.OriginCanvasPosition.y;
|
||
var obj = new Object();
|
||
obj.x = x;
|
||
obj.y = y;
|
||
return obj;
|
||
}
|
||
|
||
function Lu_Create_CoordinateModelLine(modellength) {
|
||
|
||
var OriginPoint = new Point(0.0, 0.0);
|
||
var XPoint = new Point(modellength, 0.0);
|
||
var YPoint = new Point(0.0, modellength);
|
||
|
||
var XModelText = new Object();
|
||
XModelText.ModelPosition = XPoint;
|
||
XModelText.Str = "x";
|
||
XModelText.Color = "red";
|
||
XModelText.Size = 25;
|
||
|
||
var YModelText = new Object();
|
||
YModelText.ModelPosition = YPoint;
|
||
YModelText.Str = "y";
|
||
YModelText.Color = "green";
|
||
YModelText.Size = 25;
|
||
|
||
var XModelLine = new Object();
|
||
XModelLine.ModelStart = OriginPoint;
|
||
XModelLine.ModelEnd = XPoint;
|
||
XModelLine.Color = "red";
|
||
|
||
var YModelLine = new Object();
|
||
YModelLine.ModelStart = OriginPoint;
|
||
YModelLine.ModelEnd = YPoint;
|
||
YModelLine.Color = "green";
|
||
|
||
var CoordinateModelLine = new Object();
|
||
CoordinateModelLine.XModelText = XModelText;
|
||
CoordinateModelLine.YModelText = YModelText;
|
||
CoordinateModelLine.XModelLine = XModelLine;
|
||
CoordinateModelLine.YModelLine = YModelLine;
|
||
return CoordinateModelLine;
|
||
}
|
||
|
||
function Lu_Create_PathModelLine(PathTable_Line, Color, PathModelLineArr) {
|
||
var PathModelLine = new Object();
|
||
PathModelLine.PathTable_Line = PathTable_Line;
|
||
//PathModelLine.ModelStart=ModelStart;
|
||
//PathModelLine.ModelEnd=ModelEnd;
|
||
PathModelLine.Color = Color;
|
||
PathModelLineArr.push(PathModelLine);
|
||
}
|
||
|
||
function Lu_Create_PathModelArc(PathTable_Arc, Color, PathModelArcArr) {
|
||
var PathModelArc = new Object();
|
||
PathModelArc.PathTable_Arc = PathTable_Arc;
|
||
PathModelArc.Color = Color;
|
||
PathModelArcArr.push(PathModelArc);
|
||
}
|
||
|
||
function Lu_Create_PathModelOriginTurn(PathTable_OriginTurn, Color, PathModelOriginTurnArr) {
|
||
var PathModelOriginTurn = new Object();
|
||
PathModelOriginTurn.PathTable_OriginTurn = PathTable_OriginTurn;
|
||
PathModelOriginTurn.Color = Color;
|
||
PathModelOriginTurnArr.push(PathModelOriginTurn);
|
||
}
|
||
|
||
function Lu_Create_PathModelBezier(PathTable_Bezier, Color, PathModelBezierArr) {
|
||
var PathModelBezier = new Object();
|
||
PathModelBezier.PathTable_Bezier = PathTable_Bezier;
|
||
PathModelBezier.Color = Color;
|
||
PathModelBezierArr.push(PathModelBezier);
|
||
}
|
||
|
||
function Lu_Create_PathModelWayPoint(PathTable_WayPoint, Color, PathModelWayPointArr) {
|
||
var PathModelWayPoint = new Object();
|
||
PathModelWayPoint.PathTable_WayPoint = PathTable_WayPoint;
|
||
PathModelWayPoint.Color = Color;
|
||
PathModelWayPointArr.push(PathModelWayPoint);
|
||
}
|
||
|
||
function Lu_Create_PathNodeModel(PathNode, Color, Size, PathNodeModelArr) {
|
||
var PathNodeModel = new Object();
|
||
PathNodeModel.PathNode = PathNode;
|
||
PathNodeModel.Color = Color;
|
||
PathNodeModel.Size = Size;
|
||
PathNodeModelArr.push(PathNodeModel);
|
||
}
|
||
|
||
function Lu_Create_LearnPointCloud(PointCloud, Color, Size, PointCloudModelArr) {
|
||
var PointCloudModel = new Object();
|
||
PointCloudModel.PointCloud = PointCloud;
|
||
PointCloudModel.Color = Color;
|
||
PointCloudModel.Size = Size;
|
||
PointCloudModelArr.push(PointCloudModel);
|
||
}
|
||
|
||
function Lu_Create_CarModel(CarModelArr) {
|
||
var CarModel = new Object();
|
||
CarModel.x_m = Car_Global_rx;
|
||
CarModel.y_m = Car_Global_ry;
|
||
CarModel.t_deg = Car_Global_Theta;
|
||
CarModelArr.push(CarModel);
|
||
}
|
||
|
||
function Lu_Create_RefModel(RefModelArr) {
|
||
var RefModel = new Object();
|
||
RefModel.x_m = Learn_Ref_Node_x;
|
||
RefModel.y_m = Learn_Ref_Node_y;
|
||
RefModel.t_deg = Learn_Ref_Node_t;
|
||
RefModelArr.push(RefModel);
|
||
}
|
||
|
||
function Lu_Draw_CoordinateCanvasLine(CoordinateModelLine, OriginCanvasInitPosition) {
|
||
|
||
var XModelText = CoordinateModelLine.XModelText;
|
||
var YModelText = CoordinateModelLine.YModelText;
|
||
var XModelLine = CoordinateModelLine.XModelLine;
|
||
var YModelLine = CoordinateModelLine.YModelLine;
|
||
|
||
var XCanvasTextPosition = Lu_TransferModelToCanvasForCoordinateCanvas(XModelText.ModelPosition,
|
||
OriginCanvasInitPosition);
|
||
var XCanvasText = new PointText(new Point(XCanvasTextPosition.x, XCanvasTextPosition.y));
|
||
XCanvasText.justification = 'center';
|
||
XCanvasText.fillColor = XModelText.Color;
|
||
XCanvasText.content = XModelText.Str;
|
||
XCanvasText.fontSize = XModelText.Size; //'25px';
|
||
|
||
var YCanvasTextPosition = Lu_TransferModelToCanvasForCoordinateCanvas(YModelText.ModelPosition,
|
||
OriginCanvasInitPosition);
|
||
var YCanvasText = new PointText(new Point(YCanvasTextPosition.x, YCanvasTextPosition.y));
|
||
YCanvasText.justification = 'center';
|
||
YCanvasText.fillColor = YModelText.Color;
|
||
YCanvasText.content = YModelText.Str;
|
||
YCanvasText.fontSize = YModelText.Size; //'25px';
|
||
|
||
|
||
var XCanvasLine = new paper.Path();
|
||
var XCanvasLineStart = Lu_TransferModelToCanvasForCoordinateCanvas(XModelLine.ModelStart,
|
||
OriginCanvasInitPosition);
|
||
var XCanvasLineEnd = Lu_TransferModelToCanvasForCoordinateCanvas(XModelLine.ModelEnd, OriginCanvasInitPosition);
|
||
XCanvasLine.strokeColor = XModelLine.Color;
|
||
XCanvasLine.moveTo(XCanvasLineStart);
|
||
XCanvasLine.lineTo(XCanvasLineEnd);
|
||
|
||
var YCanvasLine = new paper.Path();
|
||
var YCanvasLineStart = Lu_TransferModelToCanvasForCoordinateCanvas(YModelLine.ModelStart,
|
||
OriginCanvasInitPosition);
|
||
var YCanvasLineEnd = Lu_TransferModelToCanvasForCoordinateCanvas(YModelLine.ModelEnd, OriginCanvasInitPosition);
|
||
YCanvasLine.strokeColor = YModelLine.Color;
|
||
YCanvasLine.moveTo(YCanvasLineStart);
|
||
YCanvasLine.lineTo(YCanvasLineEnd);
|
||
|
||
var CoordinateCanvasLine = new Object();
|
||
CoordinateCanvasLine.XCanvasText = XCanvasText;
|
||
CoordinateCanvasLine.YCanvasText = YCanvasText;
|
||
CoordinateCanvasLine.XCanvasLine = XCanvasLine;
|
||
CoordinateCanvasLine.YCanvasLine = YCanvasLine;
|
||
CoordinateCanvasLine.OriginCanvasPosition = XCanvasLineStart;
|
||
console.log(CoordinateCanvasLine.OriginCanvasPosition);
|
||
return CoordinateCanvasLine;
|
||
}
|
||
var lines = [];
|
||
|
||
function Lu_Draw_PathCanvasLineArr(PathModelLineArr, PathCanvasLineArr, CoordinateCanvasLine) {
|
||
for (let i = 0; i < PathModelLineArr.length; i++) {
|
||
var PathModelLine = PathModelLineArr[i].PathTable_Line;
|
||
var Direction = PathModelLine.rundirection;
|
||
//console.log(PathModelLine);
|
||
var path = new paper.Path();
|
||
var CanvasStart = Lu_TransferModelToCanvasWithCoordinateCanvas(PathModelLine.start_point,
|
||
CoordinateCanvasLine);
|
||
var CanvasEnd = Lu_TransferModelToCanvasWithCoordinateCanvas(PathModelLine.end_point, CoordinateCanvasLine);
|
||
var aa = {};
|
||
aa["p1"] = CanvasStart;
|
||
aa["p2"] = CanvasEnd;
|
||
aa["flag"] = 0;
|
||
lines.push(aa)
|
||
if (Direction == "Front") {
|
||
path.strokeColor = "green";
|
||
path.strokeWidth = "3";
|
||
} else {
|
||
path.strokeColor = "red";
|
||
path.strokeWidth = "1";
|
||
}
|
||
//path.strokeColor = PathModelLine.Color;
|
||
path.moveTo(CanvasStart);
|
||
path.lineTo(CanvasEnd);
|
||
PathCanvasLineArr.push(path);
|
||
}
|
||
}
|
||
|
||
function Lu_Draw_PathCanvasArcArr(PathModelArcArr, PathCanvasArcArr, CoordinateCanvasLine) {
|
||
for (let i = 0; i < PathModelArcArr.length; i++) {
|
||
var PathModelArc = PathModelArcArr[i].PathTable_Arc;
|
||
var Direction = PathModelArc.rundirection;
|
||
//console.log(PathModelArc);
|
||
//var PathModelArc=PathModelArcArr[i];
|
||
var path = new paper.Path();
|
||
|
||
var Canvasfrom = Lu_TransferModelToCanvasWithCoordinateCanvas(PathModelArc.frompoint, CoordinateCanvasLine);
|
||
var Canvasto = Lu_TransferModelToCanvasWithCoordinateCanvas(PathModelArc.topoint, CoordinateCanvasLine);
|
||
var Canvasthrough = Lu_TransferModelToCanvasWithCoordinateCanvas(PathModelArc.throughpoint,
|
||
CoordinateCanvasLine);
|
||
//var Canvasfrom=Lu_ModelToCanvas(PathModelArc.from);
|
||
//var Canvasto=Lu_ModelToCanvas(PathModelArc.to);
|
||
//var Canvasthrough=Lu_ModelToCanvas(PathModelArc.through);
|
||
|
||
var path = new paper.Path.Arc(Canvasfrom, Canvasthrough, Canvasto);
|
||
if (Direction == "Front") {
|
||
path.strokeColor = "green";
|
||
path.strokeWidth = "3";
|
||
} else {
|
||
path.strokeColor = "red";
|
||
path.strokeWidth = "1";
|
||
}
|
||
|
||
PathCanvasArcArr.push(path);
|
||
}
|
||
}
|
||
|
||
function Lu_Draw_PathCanvasBezierArr(PathModelBezierArr, PathCanvasBezierArr, CoordinateCanvasLine) {
|
||
for (let i = 0; i < PathModelBezierArr.length; i++) {
|
||
var PathModelBezier = PathModelBezierArr[i];
|
||
var PathCanvasBeizer = new Array();
|
||
for (let j = 0; j < PathModelBezier.PathTable_Bezier.length; j++) {
|
||
var Line = PathModelBezier.PathTable_Bezier[j];
|
||
var Direction = Line.rundirection;
|
||
//console.log(Line);
|
||
var path = new paper.Path();
|
||
var CanvasStart = Lu_TransferModelToCanvasWithCoordinateCanvas(Line.startpoint, CoordinateCanvasLine);
|
||
var CanvasEnd = Lu_TransferModelToCanvasWithCoordinateCanvas(Line.endpoint, CoordinateCanvasLine);
|
||
//var CanvasStart = Lu_ModelToCanvas(Line.startpoint);
|
||
//var CanvasEnd = Lu_ModelToCanvas(Line.endpoint);
|
||
if (Direction == "Front") {
|
||
path.strokeColor = "green";
|
||
path.strokeWidth = "3";
|
||
} else {
|
||
path.strokeColor = "red";
|
||
path.strokeWidth = "1";
|
||
}
|
||
//path.strokeColor = PathModelBezierArr[i].Color;
|
||
path.moveTo(CanvasStart);
|
||
path.lineTo(CanvasEnd);
|
||
PathCanvasBeizer.push(path);
|
||
}
|
||
PathCanvasBezierArr.push(PathCanvasBeizer);
|
||
}
|
||
}
|
||
|
||
function Lu_Draw_PathCanvasWayPointArr(PathModelWayPointArr, PathCanvasWayPointArr, CoordinateCanvasLine) {
|
||
for (let i = 0; i < PathModelWayPointArr.length; i++) {
|
||
var PathModelWayPoint = PathModelWayPointArr[i];
|
||
var PathCanvasWayPoint = new Array();
|
||
for (let j = 0; j < PathModelWayPoint.PathTable_WayPoint.length; j++) {
|
||
var Line = PathModelWayPoint.PathTable_WayPoint[j];
|
||
var Direction = Line.rundirection;
|
||
var path = new paper.Path();
|
||
var CanvasStart = Lu_TransferModelToCanvasWithCoordinateCanvas(Line.startpoint, CoordinateCanvasLine);
|
||
var CanvasEnd = Lu_TransferModelToCanvasWithCoordinateCanvas(Line.endpoint, CoordinateCanvasLine);
|
||
//var CanvasStart = Lu_ModelToCanvas(Line.startpoint);
|
||
//var CanvasEnd = Lu_ModelToCanvas(Line.endpoint);
|
||
if (Direction == "Front") {
|
||
path.strokeColor = "green";
|
||
path.strokeWidth = "3";
|
||
} else {
|
||
path.strokeColor = "red";
|
||
path.strokeWidth = "1";
|
||
}
|
||
//path.strokeColor = PathModelWayPointArr[i].Color;
|
||
path.moveTo(CanvasStart);
|
||
path.lineTo(CanvasEnd);
|
||
PathCanvasWayPoint.push(path);
|
||
}
|
||
PathCanvasWayPointArr.push(PathCanvasWayPoint);
|
||
}
|
||
}
|
||
|
||
function Lu_Draw_PathCanvasOriginTurnArr(PathModelOriginTurnArr, PathCanvasOriginTurnArr, CoordinateCanvasLine) {
|
||
for (let i = 0; i < PathModelOriginTurnArr.length; i++) {
|
||
var PathModelOriginTurn = PathModelOriginTurnArr[i].PathTable_OriginTurn;
|
||
//console.log(PathModelOriginTurn);
|
||
var Direction = PathModelOriginTurn.rundirection;
|
||
//var Color=PathModelOriginTurnArr[i].Color;
|
||
//console.log(PathModelOriginTurn);
|
||
//console.log(PathModelOriginTurn);
|
||
var PathCanvasOriginTurn = new Object();
|
||
var Canvasfrom = Lu_TransferModelToCanvasWithCoordinateCanvas(PathModelOriginTurn.frompoint,
|
||
CoordinateCanvasLine);
|
||
var Canvasto = Lu_TransferModelToCanvasWithCoordinateCanvas(PathModelOriginTurn.topoint,
|
||
CoordinateCanvasLine);
|
||
var Canvasthrough = Lu_TransferModelToCanvasWithCoordinateCanvas(PathModelOriginTurn.throughpoint,
|
||
CoordinateCanvasLine);
|
||
//var Canvasfrom=Lu_ModelToCanvas(PathModelOriginTurn.frompoint);
|
||
//var Canvasto=Lu_ModelToCanvas(PathModelOriginTurn.topoint);
|
||
//var Canvasthrough=Lu_ModelToCanvas(PathModelOriginTurn.throughpoint);
|
||
|
||
var patharc = new paper.Path.Arc(Canvasfrom, Canvasthrough, Canvasto);
|
||
if (Direction == "Front") {
|
||
patharc.strokeColor = "green";
|
||
patharc.strokeWidth = "3";
|
||
} else {
|
||
patharc.strokeColor = "red";
|
||
patharc.strokeWidth = "1";
|
||
}
|
||
|
||
var pathlinefrom = new paper.Path();
|
||
var CanvasStartfrom = Lu_TransferModelToCanvasWithCoordinateCanvas(PathModelOriginTurn.centerpoint,
|
||
CoordinateCanvasLine);
|
||
var CanvasEndfrom = Lu_TransferModelToCanvasWithCoordinateCanvas(PathModelOriginTurn.frompoint,
|
||
CoordinateCanvasLine);
|
||
//var CanvasStartfrom = Lu_ModelToCanvas(PathModelOriginTurn.centerpoint);
|
||
//var CanvasEndfrom = Lu_ModelToCanvas(PathModelOriginTurn.frompoint);
|
||
if (Direction == "Front") {
|
||
pathlinefrom.strokeColor = "green";
|
||
pathlinefrom.strokeWidth = "3";
|
||
} else {
|
||
pathlinefrom.strokeColor = "red";
|
||
pathlinefrom.strokeWidth = "1";
|
||
}
|
||
pathlinefrom.moveTo(CanvasStartfrom);
|
||
pathlinefrom.lineTo(CanvasEndfrom);
|
||
|
||
var pathlineto = new paper.Path();
|
||
var CanvasStartto = Lu_TransferModelToCanvasWithCoordinateCanvas(PathModelOriginTurn.centerpoint,
|
||
CoordinateCanvasLine);
|
||
var CanvasEndto = Lu_TransferModelToCanvasWithCoordinateCanvas(PathModelOriginTurn.topoint,
|
||
CoordinateCanvasLine);
|
||
//var CanvasStartto = Lu_ModelToCanvas(PathModelOriginTurn.centerpoint);
|
||
//var CanvasEndto = Lu_ModelToCanvas(PathModelOriginTurn.topoint);
|
||
if (Direction == "Front") {
|
||
pathlineto.strokeColor = "green";
|
||
pathlineto.strokeWidth = "3";
|
||
} else {
|
||
pathlineto.strokeColor = "red";
|
||
pathlineto.strokeWidth = "1";
|
||
}
|
||
pathlineto.moveTo(CanvasStartto);
|
||
pathlineto.lineTo(CanvasEndto);
|
||
|
||
PathCanvasOriginTurn.patharc = patharc;
|
||
PathCanvasOriginTurn.pathlinefrom = pathlinefrom;
|
||
PathCanvasOriginTurn.CanvasEndto = pathlineto;
|
||
|
||
PathCanvasOriginTurnArr.push(PathCanvasOriginTurn);
|
||
}
|
||
}
|
||
|
||
function Lu_Draw_PointCloudCanvasArr(PointCloudModelArr, PointCloudCanvasArr, CoordinateCanvasLine) {
|
||
for (let i = 0; i < PointCloudModelArr.length; i++) {
|
||
var PointCloudModel = PointCloudModelArr[i].PointCloud;
|
||
var Color = PointCloudModelArr[i].Color;
|
||
var CanvasSize = PointCloudModelArr[i].Size;
|
||
var PointCloudModelPosition = new Point(PointCloudModel.x, PointCloudModel.y);
|
||
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(PointCloudModelPosition,
|
||
CoordinateCanvasLine);
|
||
var circle = new Path.Circle({
|
||
center: [0, 0],
|
||
radius: 1,
|
||
strokeColor: Color
|
||
});
|
||
circle.position = CanvasPosition;
|
||
circle.fillColor = "Color"
|
||
var PointCloudCanvas = new Object();
|
||
PointCloudCanvas.circle = circle;
|
||
PointCloudCanvasArr.push(PointCloudCanvas);
|
||
}
|
||
}
|
||
|
||
function Lu_Draw_PathNodeCanvasArr(PathNodeModelArr, PathNodeCanvasArr, CoordinateCanvasLine) {
|
||
for (let i = 0; i < PathNodeModelArr.length; i++) {
|
||
var PathNodeModel = PathNodeModelArr[i].PathNode;
|
||
var Color = PathNodeModelArr[i].Color;
|
||
var CanvasSize = PathNodeModelArr[i].Size;
|
||
var NodeModelPosition = new Point(PathNodeModel.Node_x, PathNodeModel.Node_y);
|
||
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(NodeModelPosition, CoordinateCanvasLine);
|
||
//var CanvasPosition=Lu_ModelToCanvas(NodeModelPosition);
|
||
var Heading = Lu_GetNextPoint_By_xs_ys_dirdeg(PathNodeModel.Node_x, PathNodeModel.Node_y, PathNodeModel
|
||
.Node_thetax + 90, 0.5);
|
||
var CanvasHeading = Lu_TransferModelToCanvasWithCoordinateCanvas(Heading, CoordinateCanvasLine);
|
||
//var CanvasHeading=Lu_ModelToCanvas(Heading);
|
||
|
||
var circle = new Path.Circle({
|
||
center: [80, 50],
|
||
radius: 5,
|
||
strokeColor: Color
|
||
});
|
||
circle.position = CanvasPosition;
|
||
|
||
var path = new paper.Path();
|
||
path.moveTo(CanvasPosition);
|
||
path.lineTo(CanvasHeading);
|
||
path.strokeColor = "orange";
|
||
path.strokeWidth = 1;
|
||
|
||
var text = new PointText(new Point(CanvasHeading.x, CanvasHeading.y + 2));
|
||
text.justification = 'center';
|
||
text.fillColor = "purple";
|
||
text.content = PathNodeModel.NodeID + PathNodeModel.NodeName;
|
||
text.fontSize = CanvasSize; //'25px';
|
||
|
||
var PathNodeCanvas = new Object();
|
||
PathNodeCanvas.circle = circle;
|
||
PathNodeCanvas.path = path;
|
||
PathNodeCanvas.text = text;
|
||
|
||
PathNodeCanvasArr.push(PathNodeCanvas);
|
||
}
|
||
}
|
||
|
||
function Lu_Draw_CarCanvasArr(CarModelArr, CarCanvasArr, CoordinateCanvasLine) {
|
||
for (let i = 0; i < CarModelArr.length; i++) {
|
||
var CarModelPosition = new Point(Car_Global_rx, Car_Global_ry);
|
||
console.log("Lu_Draw_CarCanvasArr" + " X:" + CarModelPosition.x + " Y:" + CarModelPosition.y);
|
||
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPosition, CoordinateCanvasLine);
|
||
|
||
var Heading = Lu_GetNextPoint_By_xs_ys_dirdeg(Car_Global_rx, Car_Global_ry, Car_Global_Theta + 90, 1.0);
|
||
var CanvasHeading = Lu_TransferModelToCanvasWithCoordinateCanvas(Heading, CoordinateCanvasLine);
|
||
|
||
var circle = new Path.Circle({
|
||
center: [80, 50],
|
||
radius: 10,
|
||
strokeColor: 'red'
|
||
});
|
||
circle.position = CanvasPosition;
|
||
|
||
var path = new paper.Path();
|
||
path.moveTo(CanvasPosition);
|
||
path.lineTo(CanvasHeading);
|
||
path.strokeColor = "purple";
|
||
path.strokeWidth = 3;
|
||
|
||
var CarCanvas = new Object();
|
||
CarCanvas.circle = circle;
|
||
CarCanvas.path = path;
|
||
|
||
CarCanvasArr.push(CarCanvas);
|
||
}
|
||
}
|
||
|
||
function Lu_Draw_RefCanvasArr(RefModelArr, RefCanvasArr, CoordinateCanvasLine) {
|
||
for (let i = 0; i < RefModelArr.length; i++) {
|
||
//var CarModel=CarModelArr[i];
|
||
var RefModelPosition = new Point(Learn_Ref_Node_x, Learn_Ref_Node_y);
|
||
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(RefModelPosition, CoordinateCanvasLine);
|
||
//var CanvasPosition=Lu_ModelToCanvas(CarModelPosition);
|
||
|
||
var Heading = Lu_GetNextPoint_By_xs_ys_dirdeg(Learn_Ref_Node_x, Learn_Ref_Node_y, Learn_Ref_Node_t + 90,
|
||
1.5);
|
||
var CanvasHeading = Lu_TransferModelToCanvasWithCoordinateCanvas(Heading, CoordinateCanvasLine);
|
||
//var CanvasHeading=Lu_ModelToCanvas(Heading);
|
||
|
||
var circle = new Path.Circle({
|
||
center: [80, 50],
|
||
radius: 15,
|
||
strokeColor: 'green'
|
||
});
|
||
circle.position = CanvasPosition;
|
||
|
||
var path = new paper.Path();
|
||
path.moveTo(CanvasPosition);
|
||
path.lineTo(CanvasHeading);
|
||
path.strokeColor = "green";
|
||
path.strokeWidth = 3;
|
||
|
||
var RefCanvas = new Object();
|
||
RefCanvas.circle = circle;
|
||
RefCanvas.path = path;
|
||
|
||
RefCanvasArr.push(RefCanvas);
|
||
}
|
||
}
|
||
|
||
function Lu_Draw_CarPositionRecPath() {
|
||
var path = new paper.Path();
|
||
path.strokeColor = 'orange';
|
||
path.strokeWidth = 3;
|
||
return path;
|
||
}
|
||
|
||
function Lu_Draw_CarLearnWayPointAB4Path(CoordinateCanvasLine) {
|
||
var CarModelPosition = new Point(0, 0);
|
||
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPosition, CoordinateCanvasLine);
|
||
var path = new paper.Path();
|
||
path.strokeColor = 'blue';
|
||
path.strokeWidth = 3;
|
||
return path;
|
||
}
|
||
|
||
function Lu_Draw_CarLearnWayPointAB3Path(CoordinateCanvasLine) {
|
||
var CarModelPosition = new Point(0, 0);
|
||
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPosition, CoordinateCanvasLine);
|
||
var path = new paper.Path();
|
||
path.strokeColor = 'blue';
|
||
path.strokeWidth = 3;
|
||
return path;
|
||
}
|
||
|
||
function Lu_Draw_CarLearnWayPointABPath(CoordinateCanvasLine) {
|
||
var CarModelPosition = new Point(0, 0);
|
||
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPosition, CoordinateCanvasLine);
|
||
var path = new paper.Path();
|
||
path.strokeColor = 'blue';
|
||
path.strokeWidth = 3;
|
||
return path;
|
||
}
|
||
|
||
function Lu_Draw_CarLearnLineABPath(CoordinateCanvasLine) {
|
||
var CarModelPosition = new Point(0, 0);
|
||
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPosition, CoordinateCanvasLine);
|
||
var path = new paper.Path();
|
||
path.strokeColor = 'blue';
|
||
path.strokeWidth = 3;
|
||
path.moveTo(CanvasPosition);
|
||
path.lineTo(CanvasPosition);
|
||
return path;
|
||
}
|
||
|
||
function Lu_Draw_CarLearnLineAHPath(CoordinateCanvasLine) {
|
||
var CarModelPosition = new Point(0, 0);
|
||
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPosition, CoordinateCanvasLine);
|
||
var path = new paper.Path();
|
||
path.strokeColor = 'blue';
|
||
path.strokeWidth = 3;
|
||
path.moveTo(CanvasPosition);
|
||
path.lineTo(CanvasPosition);
|
||
return path;
|
||
}
|
||
|
||
function Lu_Draw_CarLearnBezierABCtrlPath(CoordinateCanvasLine) {
|
||
var CarModelPosition = new Point(0, 0);
|
||
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPosition, CoordinateCanvasLine);
|
||
var path = new paper.Path();
|
||
path.strokeColor = 'blue';
|
||
path.strokeWidth = 3;
|
||
path.moveTo(CanvasPosition);
|
||
path.lineTo(CanvasPosition);
|
||
path.moveTo(CanvasPosition);
|
||
path.lineTo(CanvasPosition);
|
||
path.moveTo(CanvasPosition);
|
||
path.lineTo(CanvasPosition);
|
||
return path;
|
||
}
|
||
|
||
function Lu_Draw_CarLearnBezierABPointPath(CoordinateCanvasLine) {
|
||
var CarModelPosition = new Point(0, 0);
|
||
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPosition, CoordinateCanvasLine);
|
||
var path = new paper.Path();
|
||
path.strokeColor = 'red';
|
||
path.strokeWidth = 3;
|
||
for (let i = 1; i < step_num; i++) {
|
||
path.moveTo(CanvasPosition);
|
||
path.lineTo(CanvasPosition);
|
||
}
|
||
return path;
|
||
}
|
||
|
||
|
||
function Lu_ParallelMoveDraw_CoordinateCanvasLine(CoordinateCanvasLine, offset) {
|
||
CoordinateCanvasLine.XCanvasText.position.x += offset.x;
|
||
CoordinateCanvasLine.XCanvasText.position.y += offset.y;
|
||
CoordinateCanvasLine.YCanvasText.position.x += offset.x;
|
||
CoordinateCanvasLine.YCanvasText.position.y += offset.y;
|
||
CoordinateCanvasLine.XCanvasLine.position.x += offset.x;
|
||
CoordinateCanvasLine.XCanvasLine.position.y += offset.y;
|
||
CoordinateCanvasLine.YCanvasLine.position.x += offset.x;
|
||
CoordinateCanvasLine.YCanvasLine.position.y += offset.y;
|
||
CoordinateCanvasLine.OriginCanvasPosition.x += offset.x;
|
||
CoordinateCanvasLine.OriginCanvasPosition.y += offset.y;
|
||
//console.log(CoordinateCanvasLine.OriginCanvasPosition);
|
||
}
|
||
|
||
function Lu_ParallelMoveDraw_PathCanvasLineArr(PathCanvasLineArr, offset) {
|
||
for (let i = 0; i < PathCanvasLineArr.length; i++) {
|
||
var path = PathCanvasLineArr[i];
|
||
path.position.x += offset.x;
|
||
path.position.y += offset.y;
|
||
//console.log(path.position);
|
||
}
|
||
}
|
||
|
||
function Lu_ParallelMoveDraw_PathCanvasArcArr(PathCanvasArcArr, offset) {
|
||
for (let i = 0; i < PathCanvasArcArr.length; i++) {
|
||
var path = PathCanvasArcArr[i];
|
||
path.position.x += offset.x;
|
||
path.position.y += offset.y;
|
||
//console.log(path.position);
|
||
}
|
||
}
|
||
|
||
function Lu_ParallelMoveDraw_PathCanvasOriginTurnArr(PathCanvasOriginTurnArr, offset) {
|
||
for (let i = 0; i < PathCanvasOriginTurnArr.length; i++) {
|
||
var PathCanvasOriginTurn = PathCanvasOriginTurnArr[i];
|
||
PathCanvasOriginTurn.patharc.position.x += offset.x;
|
||
PathCanvasOriginTurn.patharc.position.y += offset.y;
|
||
PathCanvasOriginTurn.pathlinefrom.position.x += offset.x;
|
||
PathCanvasOriginTurn.pathlinefrom.position.y += offset.y;
|
||
PathCanvasOriginTurn.CanvasEndto.position.x += offset.x;
|
||
PathCanvasOriginTurn.CanvasEndto.position.y += offset.y;
|
||
}
|
||
}
|
||
|
||
function Lu_ParallelMoveDraw_PathCanvasBezierArr(PathCanvasBezierArr, offset) {
|
||
for (let i = 0; i < PathCanvasBezierArr.length; i++) {
|
||
var PathCanvasBezier = PathCanvasBezierArr[i];
|
||
for (let j = 0; j < PathCanvasBezier.length; j++) {
|
||
var path = PathCanvasBezier[j];
|
||
path.position.x += offset.x;
|
||
path.position.y += offset.y;
|
||
}
|
||
}
|
||
}
|
||
|
||
function Lu_ParallelMoveDraw_PathCanvasWayPointArr(PathCanvasWayPointArr, offset) {
|
||
for (let i = 0; i < PathCanvasWayPointArr.length; i++) {
|
||
var PathCanvasWayPoint = PathCanvasWayPointArr[i];
|
||
for (let j = 0; j < PathCanvasWayPoint.length; j++) {
|
||
var path = PathCanvasWayPoint[j];
|
||
path.position.x += offset.x;
|
||
path.position.y += offset.y;
|
||
}
|
||
}
|
||
}
|
||
|
||
function Lu_ParallelMoveDraw_PathNodeCanavsArr(PathNodeCanvasArr, offset) {
|
||
for (let i = 0; i < PathNodeCanvasArr.length; i++) {
|
||
var PathNodeCanvas = PathNodeCanvasArr[i];
|
||
PathNodeCanvas.circle.position.x += offset.x;
|
||
PathNodeCanvas.circle.position.y += offset.y;
|
||
PathNodeCanvas.path.position.x += offset.x;
|
||
PathNodeCanvas.path.position.y += offset.y;
|
||
PathNodeCanvas.text.position.x += offset.x;
|
||
PathNodeCanvas.text.position.y += offset.y;
|
||
}
|
||
}
|
||
|
||
function Lu_ParallelMoveDraw_PointCloudCanvasArr(PointCloudCanvasArr, offset) {
|
||
for (let i = 0; i < PointCloudCanvasArr.length; i++) {
|
||
var PointCloudCanvas = PointCloudCanvasArr[i];
|
||
PointCloudCanvas.circle.position.x += offset.x;
|
||
PointCloudCanvas.circle.position.y += offset.y;
|
||
}
|
||
}
|
||
|
||
function Lu_ParallelMoveDraw_CarPositionRecPath(CarPositionRecPath, offset) {
|
||
CarPositionRecPath.position.x += offset.x;
|
||
CarPositionRecPath.position.y += offset.y;
|
||
}
|
||
|
||
function Lu_ParallelMoveDraw_CarLearnWayPointAB4Path(CarLearnWayPointAB4Path, offset) {
|
||
CarLearnWayPointAB4Path.position.x += offset.x;
|
||
CarLearnWayPointAB4Path.position.y += offset.y;
|
||
}
|
||
|
||
function Lu_ParallelMoveDraw_CarLearnWayPointAB3Path(CarLearnWayPointAB3Path, offset) {
|
||
CarLearnWayPointAB3Path.position.x += offset.x;
|
||
CarLearnWayPointAB3Path.position.y += offset.y;
|
||
}
|
||
|
||
function Lu_ParallelMoveDraw_CarLearnWayPointABPath(CarLearnWayPointABPath, offset) {
|
||
CarLearnWayPointABPath.position.x += offset.x;
|
||
CarLearnWayPointABPath.position.y += offset.y;
|
||
}
|
||
|
||
function Lu_Refresh_CarCanvasArr(CarCanvasArr, CoordinateCanvasLine) {
|
||
if (CarCanvasArr.length > 0) {
|
||
var CarCanvas = CarCanvasArr[0];
|
||
var CarModelPosition = new Point(Car_Global_rx, Car_Global_ry);
|
||
//console.log("Lu_Refresh_CarCanvasArr"+" x:"+Car_Global_rx+" y:"+Car_Global_ry);
|
||
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPosition, CoordinateCanvasLine);
|
||
var Heading = Lu_GetNextPoint_By_xs_ys_dirdeg(Car_Global_rx, Car_Global_ry, Car_Global_Theta + 90, 1.0);
|
||
var CanvasHeading = Lu_TransferModelToCanvasWithCoordinateCanvas(Heading, CoordinateCanvasLine);
|
||
CarCanvas.circle.position = CanvasPosition;
|
||
CarCanvas.path.segments[0].point = CanvasPosition;
|
||
CarCanvas.path.segments[1].point = CanvasHeading;
|
||
}
|
||
}
|
||
|
||
function Lu_Refresh_RefCanvasArr(RefCanvasArr, CoordinateCanvasLine) {
|
||
if (Learn_Ref_State == "true") {
|
||
if (RefCanvasArr.length > 0) {
|
||
var RefCanvas = RefCanvasArr[0];
|
||
var RefModelPosition = new Point(Learn_Ref_Node_x, Learn_Ref_Node_y);
|
||
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(RefModelPosition,
|
||
CoordinateCanvasLine);
|
||
//var CanvasPosition = Lu_ModelToCanvas(CarModelPosition);
|
||
var Heading = Lu_GetNextPoint_By_xs_ys_dirdeg(Learn_Ref_Node_x, Learn_Ref_Node_y, Learn_Ref_Node_t + 90,
|
||
1.5);
|
||
var CanvasHeading = Lu_TransferModelToCanvasWithCoordinateCanvas(Heading, CoordinateCanvasLine);
|
||
//var CanvasHeading = Lu_ModelToCanvas(Heading);
|
||
RefCanvas.circle.position = CanvasPosition;
|
||
RefCanvas.circle.strokeColor = 'green';
|
||
RefCanvas.path.segments[0].point = CanvasPosition;
|
||
RefCanvas.path.segments[1].point = CanvasHeading;
|
||
}
|
||
} else {
|
||
if (RefCanvasArr.length > 0) {
|
||
var RefCanvas = RefCanvasArr[0];
|
||
var RefModelPosition = new Point(0, 0);
|
||
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(RefModelPosition,
|
||
CoordinateCanvasLine);
|
||
RefCanvas.circle.position = CanvasPosition;
|
||
RefCanvas.circle.strokeColor = 'transparent';
|
||
RefCanvas.path.segments[0].point = CanvasPosition;
|
||
RefCanvas.path.segments[1].point = CanvasPosition;
|
||
}
|
||
}
|
||
}
|
||
|
||
function Lu_Refresh_CarPositionRecPath(CarPositionRecPath, CarGlobalPositionRecArr, CoordinateCanvasLine) {
|
||
//console.log(CarGlobalPositionRecArr);
|
||
if (CarGlobalPositionRecSch == 1) {
|
||
if (CarGlobalPositionRecArr.length > 0 && LastCarGlobalPositionRecArrLen != CarGlobalPositionRecArr.length) {
|
||
LastCarGlobalPositionRecArrLen = CarGlobalPositionRecArr.length;
|
||
var tmp_sx = CarGlobalPositionRecArr[CarGlobalPositionRecArr.length - 1].Car_Global_rx;
|
||
var tmp_sy = CarGlobalPositionRecArr[CarGlobalPositionRecArr.length - 1].Car_Global_ry;
|
||
var tmp_st = CarGlobalPositionRecArr[CarGlobalPositionRecArr.length - 1].Car_Global_Theta;
|
||
var Heading = Lu_GetNextPoint_By_xs_ys_dirdeg(tmp_sx, tmp_sy, tmp_st, 0.5);
|
||
var CanvasHeading = Lu_TransferModelToCanvasWithCoordinateCanvas(Heading, CoordinateCanvasLine);
|
||
|
||
var CarModelPosition_s = new Point(tmp_sx, tmp_sy);
|
||
var CanvasPosition_s = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPosition_s,
|
||
CoordinateCanvasLine);
|
||
|
||
var point = new paper.Point(CanvasPosition_s.x, CanvasPosition_s.y);
|
||
var headingpoint = new paper.Point(CanvasHeading.x, CanvasHeading.y);
|
||
|
||
CarPositionRecPath.add(point);
|
||
//CarPositionRecPath.add(headingpoint);
|
||
//CarPositionRecPath.add(point);
|
||
}
|
||
} else if (CarGlobalPositionRecSch == 0 && CarPositionRecPath.segments.length > 0) {
|
||
for (let i = 0; i < CarPositionRecPath.segments.length; i++) {
|
||
CarPositionRecPath.removeSegment(i);
|
||
}
|
||
LastCarGlobalPositionRecArrLen = 0;
|
||
}
|
||
}
|
||
|
||
function Lu_Refresh_CarLearnWayPointAB4Path(CarLearnWayPointAB4Path, LearnWayPoint4RecArr, CoordinateCanvasLine) {
|
||
if (HMI_Sketch_Left == "LearnWayPointAB4") {
|
||
if (LearnWayPointAB4_Sch >= 1) {
|
||
if (LearnWayPoint4RecArr.length > 0 && LastLearnWayPoint4RecArrLen != LearnWayPoint4RecArr.length) {
|
||
LastLearnWayPoint4RecArrLen = LearnWayPoint4RecArr.length;
|
||
var tmp_sx = LearnWayPoint4RecArr[LearnWayPoint4RecArr.length - 1].Car_Global_rx;
|
||
var tmp_sy = LearnWayPoint4RecArr[LearnWayPoint4RecArr.length - 1].Car_Global_ry;
|
||
var tmp_st = LearnWayPoint4RecArr[LearnWayPoint4RecArr.length - 1].Car_Global_Theta;
|
||
|
||
var CarModelPosition_s = new Point(tmp_sx, tmp_sy);
|
||
var CanvasPosition_s = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPosition_s,
|
||
CoordinateCanvasLine);
|
||
|
||
var point = new paper.Point(CanvasPosition_s.x, CanvasPosition_s.y);
|
||
|
||
CarLearnWayPointAB4Path.add(point);
|
||
}
|
||
} else {
|
||
if (CarLearnWayPointAB4Path.segments.length > 0) {
|
||
for (let i = 0; i < CarLearnWayPointAB4Path.segments.length; i++) {
|
||
CarLearnWayPointAB4Path.removeSegment(i);
|
||
}
|
||
LastLearnWayPoint4RecArrLen = 0;
|
||
}
|
||
}
|
||
} else {
|
||
if (CarLearnWayPointAB4Path.segments.length > 0) {
|
||
for (let i = 0; i < CarLearnWayPointAB4Path.segments.length; i++) {
|
||
CarLearnWayPointAB4Path.removeSegment(i);
|
||
}
|
||
LastLearnWayPoint4RecArrLen = 0;
|
||
}
|
||
}
|
||
}
|
||
|
||
function Lu_Refresh_CarLearnWayPointAB3Path(CarLearnWayPointAB3Path, LearnWayPoint3RecArr, CoordinateCanvasLine) {
|
||
if (HMI_Sketch_Left == "LearnWayPointAB3") {
|
||
if (LearnWayPointAB3_Sch >= 1) {
|
||
if (LearnWayPoint3RecArr.length > 0 && LastLearnWayPoint3RecArrLen != LearnWayPoint3RecArr.length) {
|
||
LastLearnWayPoint3RecArrLen = LearnWayPoint3RecArr.length;
|
||
var tmp_sx = LearnWayPoint3RecArr[LearnWayPoint3RecArr.length - 1].Car_Global_rx;
|
||
var tmp_sy = LearnWayPoint3RecArr[LearnWayPoint3RecArr.length - 1].Car_Global_ry;
|
||
var tmp_st = LearnWayPoint3RecArr[LearnWayPoint3RecArr.length - 1].Car_Global_Theta;
|
||
|
||
var CarModelPosition_s = new Point(tmp_sx, tmp_sy);
|
||
var CanvasPosition_s = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPosition_s,
|
||
CoordinateCanvasLine);
|
||
|
||
var point = new paper.Point(CanvasPosition_s.x, CanvasPosition_s.y);
|
||
|
||
CarLearnWayPointAB3Path.add(point);
|
||
}
|
||
} else {
|
||
if (CarLearnWayPointAB3Path.segments.length > 0) {
|
||
for (let i = 0; i < CarLearnWayPointAB3Path.segments.length; i++) {
|
||
CarLearnWayPointAB3Path.removeSegment(i);
|
||
}
|
||
LastLearnWayPoint3RecArrLen = 0;
|
||
}
|
||
}
|
||
} else {
|
||
if (CarLearnWayPointAB3Path.segments.length > 0) {
|
||
for (let i = 0; i < CarLearnWayPointAB3Path.segments.length; i++) {
|
||
CarLearnWayPointAB3Path.removeSegment(i);
|
||
}
|
||
LastLearnWayPoint3RecArrLen = 0;
|
||
}
|
||
}
|
||
}
|
||
|
||
function Lu_Refresh_CarLearnWayPointABPath(CarLearnWayPointABPath, LearnWayPointRecArr, CoordinateCanvasLine) {
|
||
if (HMI_Sketch_Left == "LearnWayPointAB") {
|
||
if (LearnWayPointAB_Sch >= 1) {
|
||
if (LearnWayPointRecArr.length > 0 && LastLearnWayPointRecArrLen != LearnWayPointRecArr.length) {
|
||
LastLearnWayPointRecArrLen = LearnWayPointRecArr.length;
|
||
var tmp_sx = LearnWayPointRecArr[LearnWayPointRecArr.length - 1].Car_Global_rx;
|
||
var tmp_sy = LearnWayPointRecArr[LearnWayPointRecArr.length - 1].Car_Global_ry;
|
||
var tmp_st = LearnWayPointRecArr[LearnWayPointRecArr.length - 1].Car_Global_Theta;
|
||
|
||
var CarModelPosition_s = new Point(tmp_sx, tmp_sy);
|
||
var CanvasPosition_s = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPosition_s,
|
||
CoordinateCanvasLine);
|
||
|
||
var point = new paper.Point(CanvasPosition_s.x, CanvasPosition_s.y);
|
||
|
||
CarLearnWayPointABPath.add(point);
|
||
}
|
||
} else {
|
||
if (CarLearnWayPointABPath.segments.length > 0) {
|
||
for (let i = 0; i < CarLearnWayPointABPath.segments.length; i++) {
|
||
CarLearnWayPointABPath.removeSegment(i);
|
||
}
|
||
LastLearnWayPointRecArrLen = 0;
|
||
}
|
||
}
|
||
} else {
|
||
if (CarLearnWayPointABPath.segments.length > 0) {
|
||
for (let i = 0; i < CarLearnWayPointABPath.segments.length; i++) {
|
||
CarLearnWayPointABPath.removeSegment(i);
|
||
}
|
||
LastLearnWayPointRecArrLen = 0;
|
||
}
|
||
}
|
||
}
|
||
|
||
function Lu_Refresh_CarLearnLineABPath(CarLearnLineABPath, CoordinateCanvasLine) {
|
||
if (HMI_Sketch_Left == "LearnLineAB") {
|
||
if (LearnLineAB_Sch == 1) {
|
||
var CarModelPositionA = new paper.Point(LearnLineAB_PointA_rx, LearnLineAB_PointA_ry);
|
||
var CanvasPositionA = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionA,
|
||
CoordinateCanvasLine);
|
||
var CarModelPositionB = new paper.Point(Car_Global_rx, Car_Global_ry);
|
||
var CanvasPositionB = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionB,
|
||
CoordinateCanvasLine);
|
||
CarLearnLineABPath.segments[0].point = CanvasPositionA;
|
||
CarLearnLineABPath.segments[1].point = CanvasPositionB;
|
||
} else if (LearnLineAB_Sch > 1) {
|
||
var CarModelPositionA = new paper.Point(LearnLineAB_PointA_rx, LearnLineAB_PointA_ry);
|
||
var CanvasPositionA = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionA,
|
||
CoordinateCanvasLine);
|
||
var CarModelPositionB = new paper.Point(LearnLineAB_PointB_rx, LearnLineAB_PointB_ry);
|
||
var CanvasPositionB = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionB,
|
||
CoordinateCanvasLine);
|
||
CarLearnLineABPath.segments[0].point = CanvasPositionA;
|
||
CarLearnLineABPath.segments[1].point = CanvasPositionB;
|
||
} else {
|
||
var CarModelPositionA = new paper.Point(0, 0);
|
||
var CanvasPositionA = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionA,
|
||
CoordinateCanvasLine);
|
||
var CarModelPositionB = new paper.Point(0, 0);
|
||
var CanvasPositionB = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionB,
|
||
CoordinateCanvasLine);
|
||
CarLearnLineABPath.segments[0].point = CanvasPositionA;
|
||
CarLearnLineABPath.segments[1].point = CanvasPositionB;
|
||
}
|
||
} else {
|
||
var CarModelPositionA = new paper.Point(0, 0);
|
||
var CanvasPositionA = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionA, CoordinateCanvasLine);
|
||
var CarModelPositionB = new paper.Point(0, 0);
|
||
var CanvasPositionB = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionB, CoordinateCanvasLine);
|
||
CarLearnLineABPath.segments[0].point = CanvasPositionA;
|
||
CarLearnLineABPath.segments[1].point = CanvasPositionB;
|
||
}
|
||
}
|
||
|
||
function Lu_Refresh_CarLearnLineAHPath(CarLearnLineAHPath, CoordinateCanvasLine) {
|
||
if (HMI_Sketch_Left == "LearnLineAH") {
|
||
if (LearnLineAH_Sch == 1) {
|
||
var CarModelPositionA = new paper.Point(LearnLineAH_PointA_rx, LearnLineAH_PointA_ry);
|
||
var CanvasPositionA = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionA,
|
||
CoordinateCanvasLine);
|
||
|
||
var dist = Lu_Get_Dist(LearnLineAH_PointA_rx, LearnLineAH_PointA_ry, Car_Global_rx, Car_Global_ry);
|
||
var AH_Point;
|
||
if (LearnLineAH_Direction == "Front") {
|
||
AH_Point = Lu_GetNextPoint_By_xs_ys_dirdeg(LearnLineAH_PointA_rx, LearnLineAH_PointA_ry,
|
||
LearnLineAH_PointA_rt + 90, dist);
|
||
} else {
|
||
AH_Point = Lu_GetNextPoint_By_xs_ys_dirdeg(LearnLineAH_PointA_rx, LearnLineAH_PointA_ry,
|
||
LearnLineAH_PointA_rt - 90, dist);
|
||
}
|
||
AH_Global_rx = AH_Point.x;
|
||
AH_Global_ry = AH_Point.y;
|
||
AH_Global_rt = LearnLineAH_PointA_rt;
|
||
|
||
var CarModelPositionB = new paper.Point(AH_Point.x, AH_Point.y);
|
||
var CanvasPositionB = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionB,
|
||
CoordinateCanvasLine);
|
||
CarLearnLineAHPath.segments[0].point = CanvasPositionA;
|
||
CarLearnLineAHPath.segments[1].point = CanvasPositionB;
|
||
} else if (LearnLineAH_Sch > 1) {
|
||
var CarModelPositionA = new paper.Point(LearnLineAH_PointA_rx, LearnLineAH_PointA_ry);
|
||
var CanvasPositionA = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionA,
|
||
CoordinateCanvasLine);
|
||
|
||
var dist = Lu_Get_Dist(LearnLineAH_PointA_rx, LearnLineAH_PointA_ry, Car_Global_rx, Car_Global_ry);
|
||
var AH_Point;
|
||
if (LearnLineAH_Direction == "Front") {
|
||
AH_Point = Lu_GetNextPoint_By_xs_ys_dirdeg(LearnLineAH_PointA_rx, LearnLineAH_PointA_ry,
|
||
LearnLineAH_PointA_rt + 90, dist);
|
||
} else {
|
||
AH_Point = Lu_GetNextPoint_By_xs_ys_dirdeg(LearnLineAH_PointA_rx, LearnLineAH_PointA_ry,
|
||
LearnLineAH_PointA_rt - 90, dist);
|
||
}
|
||
AH_Global_rx = AH_Point.x;
|
||
AH_Global_ry = AH_Point.y;
|
||
AH_Global_rt = LearnLineAH_PointA_rt;
|
||
|
||
var CarModelPositionB = new paper.Point(AH_Point.x, AH_Point.y);
|
||
var CanvasPositionB = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionB,
|
||
CoordinateCanvasLine);
|
||
CarLearnLineAHPath.segments[0].point = CanvasPositionA;
|
||
CarLearnLineAHPath.segments[1].point = CanvasPositionB;
|
||
} else {
|
||
var CarModelPositionA = new paper.Point(0, 0);
|
||
var CanvasPositionA = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionA,
|
||
CoordinateCanvasLine);
|
||
var CarModelPositionB = new paper.Point(0, 0);
|
||
var CanvasPositionB = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionB,
|
||
CoordinateCanvasLine);
|
||
CarLearnLineAHPath.segments[0].point = CanvasPositionA;
|
||
CarLearnLineAHPath.segments[1].point = CanvasPositionB;
|
||
}
|
||
} else {
|
||
var CarModelPositionA = new paper.Point(0, 0);
|
||
var CanvasPositionA = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionA, CoordinateCanvasLine);
|
||
var CarModelPositionB = new paper.Point(0, 0);
|
||
var CanvasPositionB = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionB, CoordinateCanvasLine);
|
||
CarLearnLineAHPath.segments[0].point = CanvasPositionA;
|
||
CarLearnLineAHPath.segments[1].point = CanvasPositionB;
|
||
}
|
||
}
|
||
|
||
function Lu_Refresh_CarLearnBezierABPointPath(CarLearnBezierABPointPath, CoordinateCanvasLine) {
|
||
if (HMI_Sketch_Left == "LearnBezierAB") {
|
||
if (LearnBezierAB_Sch == 2 || LearnBezierAB_Sch == 3 || LearnBezierAB_Sch == 4) {
|
||
var t = 0.0;
|
||
for (let s = 0; s < step_num; s++) {
|
||
var P_x = 0.0;
|
||
var P_y = 0.0;
|
||
var Pn_x = 0.0;
|
||
var Pn_y = 0.0;
|
||
var n = 3.0;
|
||
|
||
for (let i = 0; i <= n; i++) {
|
||
if (i == 0) {
|
||
Pn_x = LearnBezierAB_PointA_rx;
|
||
Pn_y = LearnBezierAB_PointA_ry;
|
||
} else if (i == 1) {
|
||
Pn_x = LearnBezierAB_ANext_rx;
|
||
Pn_y = LearnBezierAB_ANext_ry;
|
||
} else if (i == 2) {
|
||
Pn_x = LearnBezierAB_BLast_rx;
|
||
Pn_y = LearnBezierAB_BLast_ry;
|
||
} else if (i == 3) {
|
||
Pn_x = LearnBezierAB_PointB_rx;
|
||
Pn_y = LearnBezierAB_PointB_ry;
|
||
}
|
||
//console.log("i:"+i+" Pnx:"+Pn_x+" Pny:"+Pn_y);
|
||
var Cni = factorial(n) / (factorial(i) * factorial(n - i));
|
||
|
||
var c1 = Math.pow((1 - t), (n - i));
|
||
var c2 = Math.pow(t, i);
|
||
//console.log("Cni:"+Cni+" c1:"+c1+" c2:"+c2+" t:"+t);
|
||
P_x = P_x + (Cni) * c1 * c2 * Pn_x;
|
||
P_y = P_y + (Cni) * c1 * c2 * Pn_y;
|
||
}
|
||
//console.log("P"+s+":("+P_x+","+P_y+")");
|
||
var CarModelPositionP = new paper.Point(P_x, P_y);
|
||
var CanvasPositionP = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionP,
|
||
CoordinateCanvasLine);
|
||
CarLearnBezierABPointPath.segments[s].point = CanvasPositionP;
|
||
|
||
t = t + step;
|
||
}
|
||
} else {
|
||
var CarModelPositionA = new paper.Point(0, 0);
|
||
var CanvasPositionA = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionA,
|
||
CoordinateCanvasLine);
|
||
for (let i = 0; i < step_num; i++) {
|
||
CarLearnBezierABPointPath.segments[i].point = CanvasPositionA;
|
||
}
|
||
}
|
||
} else {
|
||
var CarModelPositionA = new paper.Point(0, 0);
|
||
var CanvasPositionA = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionA, CoordinateCanvasLine);
|
||
for (let i = 0; i < step_num; i++) {
|
||
CarLearnBezierABPointPath.segments[i].point = CanvasPositionA;
|
||
}
|
||
}
|
||
}
|
||
|
||
function Lu_Refresh_CarLearnBezierABCtrlPath(CarLearnBezierABCtrlPath, CoordinateCanvasLine) {
|
||
if (HMI_Sketch_Left == "LearnBezierAB") {
|
||
if (LearnBezierAB_Sch == 2) {
|
||
var CarModelPositionA = new paper.Point(LearnBezierAB_PointA_rx, LearnBezierAB_PointA_ry);
|
||
var CanvasPositionA = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionA,
|
||
CoordinateCanvasLine);
|
||
var CarModelPositionANext = new paper.Point(LearnBezierAB_ANext_rx, LearnBezierAB_ANext_ry);
|
||
var CanvasPositionANext = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionANext,
|
||
CoordinateCanvasLine);
|
||
var CarModelPositionBLast = new paper.Point(LearnBezierAB_BLast_rx, LearnBezierAB_BLast_ry);
|
||
var CanvasPositionBLast = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionBLast,
|
||
CoordinateCanvasLine);
|
||
var CarModelPositionB = new paper.Point(LearnBezierAB_PointB_rx, LearnBezierAB_PointB_ry);
|
||
var CanvasPositionB = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionB,
|
||
CoordinateCanvasLine);
|
||
CarLearnBezierABCtrlPath.segments[0].point = CanvasPositionA;
|
||
CarLearnBezierABCtrlPath.segments[1].point = CanvasPositionANext;
|
||
CarLearnBezierABCtrlPath.segments[2].point = CanvasPositionBLast;
|
||
CarLearnBezierABCtrlPath.segments[3].point = CanvasPositionB;
|
||
} else {
|
||
var CarModelPositionA = new paper.Point(0, 0);
|
||
var CanvasPositionA = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionA,
|
||
CoordinateCanvasLine);
|
||
var CarModelPositionB = new paper.Point(0, 0);
|
||
var CanvasPositionB = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionB,
|
||
CoordinateCanvasLine);
|
||
CarLearnBezierABCtrlPath.segments[0].point = CanvasPositionA;
|
||
CarLearnBezierABCtrlPath.segments[1].point = CanvasPositionA;
|
||
CarLearnBezierABCtrlPath.segments[2].point = CanvasPositionB;
|
||
CarLearnBezierABCtrlPath.segments[3].point = CanvasPositionB;
|
||
}
|
||
} else {
|
||
var CarModelPositionA = new paper.Point(0, 0);
|
||
var CanvasPositionA = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionA, CoordinateCanvasLine);
|
||
var CarModelPositionB = new paper.Point(0, 0);
|
||
var CanvasPositionB = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPositionB, CoordinateCanvasLine);
|
||
CarLearnBezierABCtrlPath.segments[0].point = CanvasPositionA;
|
||
CarLearnBezierABCtrlPath.segments[1].point = CanvasPositionA;
|
||
CarLearnBezierABCtrlPath.segments[2].point = CanvasPositionB;
|
||
CarLearnBezierABCtrlPath.segments[3].point = CanvasPositionB;
|
||
}
|
||
}
|
||
|
||
window.onload = function() {
|
||
Lu_Init_Canvas();
|
||
//console.log("=========================== window.onload Lu_Init_Canvas============================");
|
||
var CoordinateModelLine;
|
||
var CoordinateCanvasLine;
|
||
|
||
var LearnPathModelLineArr = new Array();
|
||
var LearnPathCanvasLineArr = new Array();
|
||
|
||
var LearnPathModelArcArr = new Array();
|
||
var LearnPathCanvasArcArr = new Array();
|
||
|
||
var LearnPathModelBezierArr = new Array();
|
||
var LearnPathCanvasBezierArr = new Array();
|
||
|
||
var LearnPathModelWayPointArr = new Array();
|
||
var LearnPathCanvasWayPointArr = new Array();
|
||
|
||
var LearnPathModelOriginTurnArr = new Array();
|
||
var LearnPathCanvasOriginTurnArr = new Array();
|
||
|
||
var LearnPathNodeModelArr = new Array();
|
||
var LearnPathNodeCanvasArr = new Array();
|
||
|
||
var LearnPointCloudModelArr = new Array();
|
||
var LearnPointCloudCanvasArr = new Array();
|
||
|
||
var CarModelArr = new Array();
|
||
var CarCanvasArr = new Array();
|
||
|
||
var RefModelArr = new Array();
|
||
var RefCanvasArr = new Array();
|
||
|
||
var CarPositionRecPath;
|
||
var CarLearnWayPointABPath;
|
||
var CarLearnWayPointAB3Path;
|
||
var CarLearnWayPointAB4Path;
|
||
var CarLearnLineABPath;
|
||
var CarLearnLineAHPath;
|
||
var CarLearnBezierABCtrlPath;
|
||
var CarLearnBezierABPointPath;
|
||
|
||
|
||
|
||
|
||
CoordinateModelLine = Lu_Create_CoordinateModelLine(2.0);
|
||
//console.log("=========================== window.onload Lu_Create_CoordinateModelLine============================");
|
||
Lu_Create_CarModel(CarModelArr);
|
||
//console.log("=========================== window.onload Lu_Create_CarModel============================");
|
||
Lu_Create_RefModel(RefModelArr);
|
||
//console.log("=========================== window.onload Lu_Create_RefModel============================");
|
||
view.onFrame = function(event) {
|
||
if (draw_sch == 0) {
|
||
//console.log("=========================== window.onload draw_sch 0============================");
|
||
if (Get_LearnPathTable_File_OK && Get_LearnNodePointManagerTable_File_OK &&
|
||
Get_LearnPointCloud_File_OK) {
|
||
draw_sch = 1;
|
||
}
|
||
} else if (draw_sch == 1) {
|
||
//console.log("=========================== window.onload draw_sch 1============================");
|
||
for (let j = 0; j < LearnPathTable_Line_Arr.length; j++) {
|
||
var PathTable_Line = LearnPathTable_Line_Arr[j];
|
||
//console.log(PathTable_Line);
|
||
Lu_Create_PathModelLine(PathTable_Line, "grey", LearnPathModelLineArr);
|
||
}
|
||
for (let l = 0; l < LearnPathTable_Arc_Arr.length; l++) {
|
||
var PathTable_Arc = LearnPathTable_Arc_Arr[l];
|
||
Lu_Create_PathModelArc(PathTable_Arc, "grey", LearnPathModelArcArr);
|
||
//console.log(PathTable_Arc);
|
||
}
|
||
for (let l = 0; l < LearnPathTable_Bezier_Arr.length; l++) {
|
||
var PathTable_Bezier = LearnPathTable_Bezier_Arr[l];
|
||
//console.log(PathTable_Bezier);
|
||
Lu_Create_PathModelBezier(PathTable_Bezier, "grey", LearnPathModelBezierArr);
|
||
}
|
||
for (let l = 0; l < LearnPathTable_WayPoint_Arr.length; l++) {
|
||
var PathTable_WayPoint = LearnPathTable_WayPoint_Arr[l];
|
||
Lu_Create_PathModelWayPoint(PathTable_WayPoint, "grey", LearnPathModelWayPointArr);
|
||
}
|
||
for (let l = 0; l < LearnPathTable_OriginTurn_Arr.length; l++) {
|
||
var PathTable_OriginTurn = LearnPathTable_OriginTurn_Arr[l];
|
||
Lu_Create_PathModelOriginTurn(PathTable_OriginTurn, "grey", LearnPathModelOriginTurnArr);
|
||
//console.log(PathTable_OriginTurn);
|
||
}
|
||
|
||
for (let n = 0; n < LearnNodePointManagerTable_PathNode_Arr.length; n++) {
|
||
var PathNode = LearnNodePointManagerTable_PathNode_Arr[n];
|
||
Lu_Create_PathNodeModel(PathNode, "orange", 5, LearnPathNodeModelArr);
|
||
}
|
||
for (let u = 0; u < LearnPointCloud_Arr.length; u++) {
|
||
var p = LearnPointCloud_Arr[u];
|
||
Lu_Create_LearnPointCloud(p, "black", 1, LearnPointCloudModelArr);
|
||
}
|
||
draw_sch = 2;
|
||
} else if (draw_sch == 2) {
|
||
//console.log("=========================== window.onload draw_sch 2============================");
|
||
var canvas = document.getElementById('myCanvas');
|
||
var canvas_height = parseFloat(canvas.style.height);
|
||
CoordinateCanvasLine = Lu_Draw_CoordinateCanvasLine(CoordinateModelLine, new Point(
|
||
ScreenPanRecord.x, ScreenPanRecord.y - canvas_height));
|
||
paper.view.zoom = ZoomRecord;
|
||
|
||
console.log("LearnPathModelLineArr", JSON.stringify(LearnPathModelLineArr))
|
||
//[{"PathTable_Line":{"start_point":["Point",1.029,0.043],"end_point":["Point",-1.081,0.055],"thetax":89.674151,"rundirection":"Front"},"Color":"grey"},{"PathTable_Line":{"start_point":["Point",0.741,1.013],"end_point":["Point",-0.745,1.033],"thetax":89.228906,"rundirection":"Front"},"Color":"grey"},{"PathTable_Line":{"start_point":["Point",-2.145,1.396],"end_point":["Point",-2.082,-0.108],"thetax":-177.60138,"rundirection":"Front"},"Color":"grey"},{"PathTable_Line":{"start_point":["Point",-1.081,0.055],"end_point":["Point",1.029,0.043],"thetax":89.674151,"rundirection":"Reverse"},"Color":"grey"},{"PathTable_Line":{"start_point":["Point",-0.745,1.033],"end_point":["Point",0.741,1.013],"thetax":89.228906,"rundirection":"Reverse"},"Color":"grey"},{"PathTable_Line":{"start_point":["Point",-2.082,-0.108],"end_point":["Point",-2.145,1.396],"thetax":-177.60138,"rundirection":"Reverse"},"Color":"grey"}]
|
||
console.log("LearnPathCanvasLineArr", LearnPathCanvasLineArr)
|
||
console.log("CoordinateCanvasLine", CoordinateCanvasLine)
|
||
//{"XCanvasText":["PointText",{"applyMatrix":false,"matrix":[1,0,0,1,140,300],"content":"x","fillColor":[1,0,0],"fontSize":25,"leading":30,"justification":"center"}],"YCanvasText":["PointText",{"applyMatrix":false,"matrix":[1,0,0,1,100,260],"content":"y","fillColor":[0,0.50196,0],"fontSize":25,"leading":30,"justification":"center"}],"XCanvasLine":["Path",{"applyMatrix":true,"segments":[[100,300],[140,300]],"strokeColor":[1,0,0]}],"YCanvasLine":["Path",{"applyMatrix":true,"segments":[[100,300],[100,260]],"strokeColor":[0,0.50196,0]}],"OriginCanvasPosition":{"x":100,"y":300}}
|
||
|
||
|
||
console.log("LearnPathModelArcArr", LearnPathModelArcArr)
|
||
console.log("LearnPathCanvasArcArr", LearnPathCanvasArcArr)
|
||
|
||
console.log("LearnPathModelBezierArr", LearnPathModelBezierArr)
|
||
console.log("LearnPathCanvasBezierArr", LearnPathCanvasBezierArr)
|
||
|
||
console.log("LearnPathModelWayPointArr", LearnPathModelWayPointArr)
|
||
//[{"PathTable_WayPoint":[{"startpoint":["Point",-0.745,1.033],"endpoint":["Point",-0.785,1.032],"rundirection":"Front"},{"startpoint":["Point",-0.785,1.032],"endpoint":["Point",-0.829,1.03],"rundirection":"Front"},{"startpoint":["Point",-0.829,1.03],"endpoint":["Point",-0.876,1.025],"rundirection":"Front"},{"startpoint":["Point",-0.876,1.025],"endpoint":["Point",-0.926,1.018],"rundirection":"Front"},{"startpoint":["Point",-0.926,1.018],"endpoint":["Point",-0.978,1.009],"rundirection":"Front"},{"startpoint":["Point",-0.978,1.009],"endpoint":["Point",-1.032,0.999],"rundirection":"Front"},{"startpoint":["Point",-1.032,0.999],"endpoint":["Point",-1.087,0.987],"rundirection":"Front"},{"startpoint":["Point",-1.087,0.987],"endpoint":["Point",-1.143,0.973],"rundirection":"Front"},{"startpoint":["Point",-1.143,0.973],"endpoint":["Point",-1.199,0.958],"rundirection":"Front"},{"startpoint":["Point",-1.199,0.958],"endpoint":["Point",-1.255,0.942],"rundirection":"Front"},{"startpoint":["Point",-1.255,0.942],"endpoint":["Point",-1.311,0.924],"rundirection":"Front"},{"startpoint":["Point",-1.311,0.924],"endpoint":["Point",-1.367,0.905],"rundirection":"Front"},{"startpoint":["Point",-1.367,0.905],"endpoint":["Point",-1.421,0.886],"rundirection":"Front"},{"startpoint":["Point",-1.421,0.886],"endpoint":["Point",-1.473,0.865],"rundirection":"Front"},{"startpoint":["Point",-1.473,0.865],"endpoint":["Point",-1.523,0.844],"rundirection":"Front"},{"startpoint":["Point",-1.523,0.844],"endpoint":["Point",-1.57,0.822],"rundirection":"Front"},{"startpoint":["Point",-1.57,0.822],"endpoint":["Point",-1.615,0.799],"rundirection":"Front"},{"startpoint":["Point",-1.615,0.799],"endpoint":["Point",-1.655,0.776],"rundirection":"Front"},{"startpoint":["Point",-1.655,0.776],"endpoint":["Point",-1.692,0.753],"rundirection":"Front"},{"startpoint":["Point",-1.692,0.753],"endpoint":["Point",-1.725,0.729],"rundirection":"Front"},{"startpoint":["Point",-1.725,0.729],"endpoint":["Point",-1.752,0.706],"rundirection":"Front"},{"startpoint":["Point",-1.752,0.706],"endpoint":["Point",-1.778,0.678],"rundirection":"Front"},{"startpoint":["Point",-1.778,0.678],"endpoint":["Point",-1.804,0.646],"rundirection":"Front"},{"startpoint":["Point",-1.804,0.646],"endpoint":["Point",-1.83,0.61],"rundirection":"Front"},{"startpoint":["Point",-1.83,0.61],"endpoint":["Point",-1.855,0.571],"rundirection":"Front"},{"startpoint":["Point",-1.855,0.571],"endpoint":["Point",-1.879,0.529],"rundirection":"Front"},{"startpoint":["Point",-1.879,0.529],"endpoint":["Point",-1.902,0.485],"rundirection":"Front"},{"startpoint":["Point",-1.902,0.485],"endpoint":["Point",-1.925,0.439],"rundirection":"Front"},{"startpoint":["Point",-1.925,0.439],"endpoint":["Point",-1.946,0.392],"rundirection":"Front"},{"startpoint":["Point",-1.946,0.392],"endpoint":["Point",-1.966,0.343],"rundirection":"Front"},{"startpoint":["Point",-1.966,0.343],"endpoint":["Point",-1.985,0.294],"rundirection":"Front"},{"startpoint":["Point",-1.985,0.294],"endpoint":["Point",-2.003,0.244],"rundirection":"Front"},{"startpoint":["Point",-2.003,0.244],"endpoint":["Point",-2.019,0.195],"rundirection":"Front"},{"startpoint":["Point",-2.019,0.195],"endpoint":["Point",-2.033,0.146],"rundirection":"Front"},{"startpoint":["Point",-2.033,0.146],"endpoint":["Point",-2.046,0.099],"rundirection":"Front"},{"startpoint":["Point",-2.046,0.099],"endpoint":["Point",-2.057,0.053],"rundirection":"Front"},{"startpoint":["Point",-2.057,0.053],"endpoint":["Point",-2.067,0.009],"rundirection":"Front"},{"startpoint":["Point",-2.067,0.009],"endpoint":["Point",-2.074,-0.033],"rundirection":"Front"},{"startpoint":["Point",-2.074,-0.033],"endpoint":["Point",-2.079,-0.072],"rundirection":"Front"},{"startpoint":["Point",-2.079,-0.072],"endpoint":["Point",-2.082,-0.108],"rundirection":"Front"}],"Color":"grey"},{"PathTable_WayPoint":[{"startpoint":["Point",-2.082,-0.108],"endpoint":["Point",-2.079,-0.072],"rundirection":"Reverse"},{"startpoint":["Point",-2.079,-0.072],"endpoint":["Point",-2.074,-0.033],"rundirection":"Reverse"},{"startpoint":["Point",-2.074,-0.033],"endpoint":["Point",-2.067,0.009],"rundirection":"Reverse"},{"startpoint":["Point",-2.067,0.009],"endpoint":["Point",-2.057,0.053],"rundirection":"Reverse"},{"startpoint":["Point",-2.057,0.053],"endpoint":["Point",-2.046,0.099],"rundirection":"Reverse"},{"startpoint":["Point",-2.046,0.099],"endpoint":["Point",-2.033,0.146],"rundirection":"Reverse"},{"startpoint":["Point",-2.033,0.146],"endpoint":["Point",-2.019,0.195],"rundirection":"Reverse"},{"startpoint":["Point",-2.019,0.195],"endpoint":["Point",-2.003,0.244],"rundirection":"Reverse"},{"startpoint":["Point",-2.003,0.244],"endpoint":["Point",-1.985,0.294],"rundirection":"Reverse"},{"startpoint":["Point",-1.985,0.294],"endpoint":["Point",-1.966,0.343],"rundirection":"Reverse"},{"startpoint":["Point",-1.966,0.343],"endpoint":["Point",-1.946,0.392],"rundirection":"Reverse"},{"startpoint":["Point",-1.946,0.392],"endpoint":["Point",-1.925,0.439],"rundirection":"Reverse"},{"startpoint":["Point",-1.925,0.439],"endpoint":["Point",-1.902,0.485],"rundirection":"Reverse"},{"startpoint":["Point",-1.902,0.485],"endpoint":["Point",-1.879,0.529],"rundirection":"Reverse"},{"startpoint":["Point",-1.879,0.529],"endpoint":["Point",-1.855,0.571],"rundirection":"Reverse"},{"startpoint":["Point",-1.855,0.571],"endpoint":["Point",-1.83,0.61],"rundirection":"Reverse"},{"startpoint":["Point",-1.83,0.61],"endpoint":["Point",-1.804,0.646],"rundirection":"Reverse"},{"startpoint":["Point",-1.804,0.646],"endpoint":["Point",-1.778,0.678],"rundirection":"Reverse"},{"startpoint":["Point",-1.778,0.678],"endpoint":["Point",-1.752,0.706],"rundirection":"Reverse"},{"startpoint":["Point",-1.752,0.706],"endpoint":["Point",-1.725,0.729],"rundirection":"Reverse"},{"startpoint":["Point",-1.725,0.729],"endpoint":["Point",-1.692,0.753],"rundirection":"Reverse"},{"startpoint":["Point",-1.692,0.753],"endpoint":["Point",-1.655,0.776],"rundirection":"Reverse"},{"startpoint":["Point",-1.655,0.776],"endpoint":["Point",-1.615,0.799],"rundirection":"Reverse"},{"startpoint":["Point",-1.615,0.799],"endpoint":["Point",-1.57,0.822],"rundirection":"Reverse"},{"startpoint":["Point",-1.57,0.822],"endpoint":["Point",-1.523,0.844],"rundirection":"Reverse"},{"startpoint":["Point",-1.523,0.844],"endpoint":["Point",-1.473,0.865],"rundirection":"Reverse"},{"startpoint":["Point",-1.473,0.865],"endpoint":["Point",-1.421,0.886],"rundirection":"Reverse"},{"startpoint":["Point",-1.421,0.886],"endpoint":["Point",-1.367,0.905],"rundirection":"Reverse"},{"startpoint":["Point",-1.367,0.905],"endpoint":["Point",-1.311,0.924],"rundirection":"Reverse"},{"startpoint":["Point",-1.311,0.924],"endpoint":["Point",-1.255,0.942],"rundirection":"Reverse"},{"startpoint":["Point",-1.255,0.942],"endpoint":["Point",-1.199,0.958],"rundirection":"Reverse"},{"startpoint":["Point",-1.199,0.958],"endpoint":["Point",-1.143,0.973],"rundirection":"Reverse"},{"startpoint":["Point",-1.143,0.973],"endpoint":["Point",-1.087,0.987],"rundirection":"Reverse"},{"startpoint":["Point",-1.087,0.987],"endpoint":["Point",-1.032,0.999],"rundirection":"Reverse"},{"startpoint":["Point",-1.032,0.999],"endpoint":["Point",-0.978,1.009],"rundirection":"Reverse"},{"startpoint":["Point",-0.978,1.009],"endpoint":["Point",-0.926,1.018],"rundirection":"Reverse"},{"startpoint":["Point",-0.926,1.018],"endpoint":["Point",-0.876,1.025],"rundirection":"Reverse"},{"startpoint":["Point",-0.876,1.025],"endpoint":["Point",-0.829,1.03],"rundirection":"Reverse"},{"startpoint":["Point",-0.829,1.03],"endpoint":["Point",-0.785,1.032],"rundirection":"Reverse"},{"startpoint":["Point",-0.785,1.032],"endpoint":["Point",-0.745,1.033],"rundirection":"Reverse"}],"Color":"grey"}]
|
||
console.log("LearnPathCanvasWayPointArr", LearnPathCanvasWayPointArr)
|
||
|
||
Lu_Draw_CarCanvasArr(CarModelArr, CarCanvasArr, CoordinateCanvasLine);
|
||
|
||
Lu_Draw_RefCanvasArr(RefModelArr, RefCanvasArr, CoordinateCanvasLine);
|
||
|
||
Lu_Draw_PathCanvasLineArr(LearnPathModelLineArr, LearnPathCanvasLineArr, CoordinateCanvasLine);
|
||
|
||
Lu_Draw_PathCanvasArcArr(LearnPathModelArcArr, LearnPathCanvasArcArr, CoordinateCanvasLine);
|
||
|
||
Lu_Draw_PathCanvasBezierArr(LearnPathModelBezierArr, LearnPathCanvasBezierArr,
|
||
CoordinateCanvasLine);
|
||
|
||
Lu_Draw_PathCanvasWayPointArr(LearnPathModelWayPointArr, LearnPathCanvasWayPointArr,
|
||
CoordinateCanvasLine);
|
||
|
||
Lu_Draw_PathCanvasOriginTurnArr(LearnPathModelOriginTurnArr, LearnPathCanvasOriginTurnArr,
|
||
CoordinateCanvasLine);
|
||
|
||
Lu_Draw_PathNodeCanvasArr(LearnPathNodeModelArr, LearnPathNodeCanvasArr, CoordinateCanvasLine);
|
||
|
||
Lu_Draw_PointCloudCanvasArr(LearnPointCloudModelArr, LearnPointCloudCanvasArr,
|
||
CoordinateCanvasLine);
|
||
|
||
CarPositionRecPath = Lu_Draw_CarPositionRecPath();
|
||
|
||
CarLearnWayPointABPath = Lu_Draw_CarLearnWayPointABPath(CoordinateCanvasLine);
|
||
|
||
CarLearnWayPointAB3Path = Lu_Draw_CarLearnWayPointAB3Path(CoordinateCanvasLine);
|
||
|
||
CarLearnWayPointAB4Path = Lu_Draw_CarLearnWayPointAB4Path(CoordinateCanvasLine);
|
||
|
||
CarLearnLineABPath = Lu_Draw_CarLearnLineABPath(CoordinateCanvasLine);
|
||
|
||
CarLearnLineAHPath = Lu_Draw_CarLearnLineAHPath(CoordinateCanvasLine);
|
||
|
||
CarLearnBezierABCtrlPath = Lu_Draw_CarLearnBezierABCtrlPath(CoordinateCanvasLine);
|
||
|
||
CarLearnBezierABPointPath = Lu_Draw_CarLearnBezierABPointPath(CoordinateCanvasLine);
|
||
|
||
paper.project.view.update();
|
||
draw_sch = 3;
|
||
} else if (draw_sch == 3) {
|
||
//console.log("=========================== window.onload draw_sch 3============================");
|
||
draw_sch = 4;
|
||
} else if (draw_sch == 4) {
|
||
//console.log("=========================== window.onload draw_sch 4============================");
|
||
//console.log(CarGlobalPositionRecSch);
|
||
}
|
||
|
||
period_times = period_times + 1;
|
||
if (draw_sch == 4 && period_times >= 5) {
|
||
//console.log("=========================== window.onload draw_sch 4 period_times>=5 Refresh============================");
|
||
Lu_Refresh_CarCanvasArr(CarCanvasArr, CoordinateCanvasLine);
|
||
Lu_Refresh_RefCanvasArr(RefCanvasArr, CoordinateCanvasLine);
|
||
Lu_Refresh_CarPositionRecPath(CarPositionRecPath, CarGlobalPositionRecArr, CoordinateCanvasLine);
|
||
Lu_Refresh_CarLearnWayPointABPath(CarLearnWayPointABPath, LearnWayPointRecArr,
|
||
CoordinateCanvasLine);
|
||
Lu_Refresh_CarLearnWayPointAB3Path(CarLearnWayPointAB3Path, LearnWayPoint3RecArr,
|
||
CoordinateCanvasLine);
|
||
Lu_Refresh_CarLearnWayPointAB4Path(CarLearnWayPointAB4Path, LearnWayPoint4RecArr,
|
||
CoordinateCanvasLine);
|
||
Lu_Refresh_CarLearnLineABPath(CarLearnLineABPath, CoordinateCanvasLine);
|
||
Lu_Refresh_CarLearnLineAHPath(CarLearnLineAHPath, CoordinateCanvasLine);
|
||
Lu_Refresh_CarLearnBezierABCtrlPath(CarLearnBezierABCtrlPath, CoordinateCanvasLine);
|
||
Lu_Refresh_CarLearnBezierABPointPath(CarLearnBezierABPointPath, CoordinateCanvasLine);
|
||
if (ButtonImage_Vertical_FollowCar == "true") {
|
||
Lu_Draw_CanvasWithCarCenter();
|
||
}
|
||
|
||
period_times = 0;
|
||
}
|
||
}
|
||
var canvas = document.getElementById('myCanvas');
|
||
const canvasRect = canvas.getBoundingClientRect();
|
||
var evenaa = {
|
||
x: 0,
|
||
y: 0
|
||
};
|
||
var highlight;
|
||
canvas.onclick = function(e) {
|
||
//console.log("lines", lines)
|
||
console.log("evenaa", evenaa)
|
||
e.clientX = e.clientX - canvasRect.left - 5;
|
||
e.clientY = e.clientY - canvasRect.top - 5
|
||
console.log("e.clientX", e.clientX)
|
||
console.log("e.clientY", e.clientY)
|
||
|
||
var boundscenter = project.view.bounds.center;
|
||
console.log("paper.view.zoom", paper.view.zoom)
|
||
console.log("boundscenter", boundscenter)
|
||
var px = (e.clientX - boundscenter.x) / paper.view.zoom + boundscenter.x - evenaa.x;
|
||
var py = (e.clientY - boundscenter.y) / paper.view.zoom + boundscenter.y - evenaa.y;
|
||
// 鼠标点击的坐标
|
||
|
||
// 逐条线确定是否有点中
|
||
//console.log("e==",e);
|
||
console.log("px", px);
|
||
console.log("py", py);
|
||
var offset = 10; // 可接受(偏移)范围
|
||
for (var i = 0; i < lines.length; i++) {
|
||
var p1 = lines[i].p1; // 直线起点
|
||
var p2 = lines[i].p2; // 直线终点
|
||
var flag = 0; // 1 - 点中
|
||
var minX = Math.min(p1.x, p2.x); // 较小的X轴坐标值
|
||
var maxX = Math.max(p1.x, p2.x); // 较大的X轴坐标值
|
||
var minY = Math.min(p1.y, p2.y); // 较小的Y轴坐标值
|
||
var maxY = Math.max(p1.y, p2.y); // 较大的Y轴坐标值
|
||
|
||
if (-2 < (p1.y - p2.y) && (p1.y - p2.y) < 2) {
|
||
|
||
// 水平线
|
||
if ((px >= minX && px <= maxX) && (py >= minY - offset && py <= maxY + offset)) {
|
||
flag = 1;
|
||
lines[i].crossPoint = {
|
||
x: px,
|
||
y: p1.y
|
||
}; // 直线上交叉点
|
||
}
|
||
|
||
} else if (-2 < (p1.x - p2.x) && (p1.x - p2.x) < 2) {
|
||
//console.log("minX", minX)
|
||
//console.log("maxX", maxX)
|
||
// 垂直线
|
||
if ((py >= minY && py <= maxY) && (px >= minX - offset && px <= maxX + offset)) {
|
||
flag = 1;
|
||
lines[i].crossPoint = {
|
||
x: p1.x,
|
||
y: py
|
||
}; // 直线上交叉点
|
||
}
|
||
} else {
|
||
// 斜线 (先判断点是否进入可接受大范围(矩形),然后再根据直线上的交叉点进行小范围比较)
|
||
if ((px >= minX && px <= maxX) && (py >= minY - offset && py <= maxY + offset)) {
|
||
//求Y轴坐标
|
||
//方法1:根据tanθ= y/x = y1/x1, 即y = (y1/x1)*x (该方法有局限性,垂直线(p2.x - p1.x)=0,不能用)
|
||
//var y = ((p2.y - p1.y) / (p2.x - p1.x)) * (px - p1.x);
|
||
|
||
//方法2:先求弧度hudu,根据cosθ=x/r, r=x/cosθ,求得r,再根据sinθ=y/r, y=sinθ*r, 求得y
|
||
var hudu = Math.atan2(p2.y - p1.y, p2.x - p1.x); // 直线的弧度(倾斜度)
|
||
// 用三角函数计出直线上的交叉点
|
||
var r = (px - p1.x) / Math.cos(hudu); // 直角三角形的斜边(或理解成圆的半径)
|
||
var y = Math.sin(hudu) * r; // Y轴坐标
|
||
|
||
var p = {
|
||
x: px,
|
||
y: p1.y + y
|
||
}; // 直线上的交叉点
|
||
if ((Math.abs(px - p.x) <= offset) && (Math.abs(py - p.y) <= offset)) {
|
||
flag = 1; // 1 - 点中
|
||
}
|
||
lines[i].crossPoint = p; // 直线上的交叉点
|
||
}
|
||
}
|
||
//console.log("flag", flag)
|
||
if (flag === 1) {
|
||
console.log("选中了", lines[i])
|
||
// 创建一个高亮边框
|
||
console.log("highlight", highlight);
|
||
if (typeof(highlight) != 'undefined') {
|
||
console.log("highlight11", highlight);
|
||
highlight.remove();
|
||
}
|
||
var item = paper.project.activeLayer.children;
|
||
console.log("p1", p1)
|
||
console.log("p2", p2)
|
||
//console.log("item",JSON.stringify(paper.project.activeLayer.children));
|
||
for (var j = 0; j < item.length; j++) {
|
||
if (item[j] instanceof paper.Path && item[j].bounds.contains([p1.x + evenaa.x, p1.y +
|
||
evenaa.y
|
||
]) && item[j].bounds.contains([p2.x + evenaa.x, p2.y + evenaa.y])) {
|
||
//item[j].remove();
|
||
var cayPath = paper.Path;
|
||
cayPath.x += evenaa.x;
|
||
cayPath.y += evenaa.y;
|
||
console.log("item[j].bounds", item[j].bounds)
|
||
|
||
var path = new paper.Path(new Point([10, 10]), new Point([100, 100]));
|
||
|
||
highlight = new cayPath.Rectangle({
|
||
rectangle: item[j].bounds.expand(5), // 根据线条边界扩展5个单位长度
|
||
fillColor: 'rgba(100,149,237, 0.5)', // 半透明黄色填充
|
||
strokeColor: null // 无描边
|
||
}); highlight.sendToBack(); // 将高亮边框置于底层
|
||
console.log("evenaa", evenaa);
|
||
|
||
//highlight.position += translation
|
||
//var translation = new paper.Point(evenaa.x, evenaa.y); // 平移向量tion;
|
||
break;
|
||
}
|
||
}
|
||
lines[i].flag = ((lines[i].flag + 1) % 2); // 0、1切换
|
||
break;
|
||
}
|
||
}
|
||
// 重画线
|
||
};
|
||
|
||
// // 当鼠标按下时进行处理
|
||
// canvas.addEventListener('mousedown', function (event) {
|
||
// var mousePos = eventToMousePosition(event); // 将事件转换为鼠标位置
|
||
|
||
// mousePos.x += evenaa.x;
|
||
// mousePos.y += evenaa.y;
|
||
// console.log('event=',event)
|
||
|
||
// // 获取所有线条对象
|
||
// var lines = [];
|
||
// for (var i in paper.project.layers[0].children) {
|
||
// if (paper.project.layers[0].children[i] instanceof paper.Path && !paper.project.layers[0].children[i].selected
|
||
// && (paper.project.layers[0].children[i].strokeColor == 'rgb(255,0,0)'
|
||
// || paper.project.layers[0].children[i].strokeColor == 'rgb(0,128,0)')) {
|
||
// console.log("paper.project.layers[0].children[i].strokeColor",paper.project.layers[0].children[i].strokeColor);
|
||
// paper.project.layers[0].children[i].strokeColor = 'black';
|
||
// lines.push(paper.project.layers[0].children[i]);
|
||
// }
|
||
// }
|
||
// // 根据鼠标位置查询是否有线条被选中
|
||
|
||
// var hitResult = false;
|
||
// for (var j in lines) {
|
||
// console.log('lines=',lines);
|
||
// console.log('lines[j].segments=',lines[j].segments);
|
||
|
||
// // var paths = lines[j];
|
||
|
||
// // var topX = paths.segments[0].point.x;
|
||
// // var topY = paths.segments[0].point.y;
|
||
// // var botX = paths.segments[1].point.x;
|
||
// // var botY = paths.segments[1].point.y;
|
||
// // var maxX,minX,maxY,minY;
|
||
|
||
// // maxX = Math.max(topX,botX)
|
||
// // minX = Math.min(topX,botX)
|
||
// // maxY = Math.max(topY,botY)
|
||
// // minY = Math.min(topY,botY)
|
||
|
||
// // if(minX-10 <= clientX && clientX <= maxX+10 && minY-10 <= clientY && clientY <= maxY+10){
|
||
|
||
// // hitResult = true;
|
||
// // }
|
||
|
||
// hitResult = lines[j].hitTest(mousePos);
|
||
// if (hitResult) {
|
||
// paper.project.layers[0].children[j].strokeColor = 'red';
|
||
// break;
|
||
// }
|
||
// }
|
||
|
||
// // 若有线条被选中,则修改其样式或者执行其他操作
|
||
// if (hitResult) {
|
||
// console.log("选中了第" + (parseInt(j)+1) + "条线条");
|
||
// // 这里可以编写自己想要执行的代码
|
||
// } else {
|
||
// console.log("没有线条被选中");
|
||
// }
|
||
// });
|
||
|
||
// // 将事件转换为鼠标位置
|
||
// function eventToMousePosition(event) {
|
||
// return new paper.Point(event.clientX - canvas.offsetLeft, event.clientY - canvas.offsetTop);
|
||
// }
|
||
|
||
view.onMouseDown = function(event) {
|
||
/*
|
||
if(event.event.button==0) {
|
||
CarGlobalPositionRecSch = 1;
|
||
}
|
||
else if(event.event.button==2){
|
||
CarGlobalPositionRecSch = 0;
|
||
}
|
||
*/
|
||
/*
|
||
if(event.event.button==0) {
|
||
CarPositionRecPath.selected=false;
|
||
if (CarPositionRecPath.segments.length > 0) {
|
||
CarPositionRecPath.onClick = function (event) {
|
||
CarPositionRecPath.selected = true;
|
||
}
|
||
}
|
||
for(let i=0;i<LearnPathCanvasLineArr.length;i++){
|
||
LearnPathCanvasLineArr[i].selected=false;
|
||
LearnPathCanvasLineArr[i].onClick=function(event){
|
||
LearnPathCanvasLineArr[i].selected = true;
|
||
}
|
||
}
|
||
}*/
|
||
}
|
||
view.onMouseDrag = function(event) {
|
||
evenaa.x += event.delta.x;
|
||
evenaa.y += event.delta.y;
|
||
|
||
if (typeof(highlight) != 'undefined') {
|
||
//var translation = new paper.Point(event.delta.x, event.delta.y);
|
||
//console.log("translation",translation);
|
||
highlight.position.x += event.delta.x;
|
||
highlight.position.y += event.delta.y;
|
||
paper.view.draw();
|
||
}
|
||
//console.log(event);
|
||
//if(event.event.buttons!=0) {
|
||
Lu_ParallelMoveDraw_CoordinateCanvasLine(CoordinateCanvasLine, event.delta);
|
||
Lu_ParallelMoveDraw_PathCanvasLineArr(LearnPathCanvasLineArr, event.delta);
|
||
Lu_ParallelMoveDraw_PathCanvasArcArr(LearnPathCanvasArcArr, event.delta);
|
||
Lu_ParallelMoveDraw_PathCanvasBezierArr(LearnPathCanvasBezierArr, event.delta);
|
||
Lu_ParallelMoveDraw_PathCanvasWayPointArr(LearnPathCanvasWayPointArr, event.delta);
|
||
Lu_ParallelMoveDraw_PathCanvasOriginTurnArr(LearnPathCanvasOriginTurnArr, event.delta);
|
||
Lu_ParallelMoveDraw_PathNodeCanavsArr(LearnPathNodeCanvasArr, event.delta);
|
||
Lu_ParallelMoveDraw_PointCloudCanvasArr(LearnPointCloudCanvasArr, event.delta);
|
||
Lu_ParallelMoveDraw_CarLearnWayPointABPath(CarLearnWayPointABPath, event.delta);
|
||
Lu_ParallelMoveDraw_CarLearnWayPointAB3Path(CarLearnWayPointAB3Path, event.delta);
|
||
Lu_ParallelMoveDraw_CarLearnWayPointAB4Path(CarLearnWayPointAB4Path, event.delta);
|
||
Lu_ParallelMoveDraw_CarPositionRecPath(CarPositionRecPath, event.delta);
|
||
paper.project.view.update();
|
||
//}
|
||
}
|
||
view.onMouseUp = function(event) {
|
||
|
||
}
|
||
|
||
function Lu_Draw_CanvasWithCarCenter() {
|
||
var CarModelPosition = new Point(Car_Global_rx, Car_Global_ry);
|
||
Lu_Draw_CanvasWithPosCenter(CarModelPosition);
|
||
//Lu_Record_HMIMapInfo(CoordinateCanvasLine);
|
||
}
|
||
|
||
function Lu_Draw_CanvasWithPosCenter(ModelPosition) {
|
||
console.log("ModelPosition", ModelPosition)
|
||
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(ModelPosition,
|
||
CoordinateCanvasLine);
|
||
//var CanvasPosition=Lu_ModelToCanvas(ModelPosition);
|
||
var canvas = document.getElementById('myCanvas');
|
||
var canvas_width = parseFloat(canvas.style.width);
|
||
var canvas_height = parseFloat(canvas.style.height);
|
||
|
||
var offset = new Point(canvas_width / 2.0 - CanvasPosition.x, canvas_height / 2.0 -
|
||
CanvasPosition.y);
|
||
console.log("offset", offset)
|
||
//ScreenPan.x =ScreenPan.x + offset.x;
|
||
//ScreenPan.y =ScreenPan.y + offset.y;
|
||
|
||
//console.log(ScreenPan);
|
||
//ScreenDrag=new Point(0.0,0.0);
|
||
Lu_ParallelMoveDraw_CoordinateCanvasLine(CoordinateCanvasLine, offset);
|
||
Lu_ParallelMoveDraw_PathCanvasLineArr(LearnPathCanvasLineArr, offset);
|
||
Lu_ParallelMoveDraw_PathCanvasArcArr(LearnPathCanvasArcArr, offset);
|
||
Lu_ParallelMoveDraw_PathCanvasBezierArr(LearnPathCanvasBezierArr, offset);
|
||
Lu_ParallelMoveDraw_PathCanvasWayPointArr(LearnPathCanvasWayPointArr, offset);
|
||
Lu_ParallelMoveDraw_PathCanvasOriginTurnArr(LearnPathCanvasOriginTurnArr, offset);
|
||
Lu_ParallelMoveDraw_PathNodeCanavsArr(LearnPathNodeCanvasArr, offset);
|
||
Lu_ParallelMoveDraw_PointCloudCanvasArr(LearnPointCloudCanvasArr, offset);
|
||
Lu_ParallelMoveDraw_CarLearnWayPointABPath(CarLearnWayPointABPath, offset);
|
||
Lu_ParallelMoveDraw_CarLearnWayPointAB3Path(CarLearnWayPointAB3Path, offset);
|
||
Lu_ParallelMoveDraw_CarLearnWayPointAB4Path(CarLearnWayPointAB4Path, offset);
|
||
Lu_ParallelMoveDraw_CarPositionRecPath(CarPositionRecPath, offset);
|
||
}
|
||
|
||
|
||
function receiveMessage(event) {
|
||
//console.log(event);
|
||
switch (event.data.event_id) {
|
||
case 'client_response': {
|
||
var data = event.data.data;
|
||
var result = data.v1;
|
||
var ROS_String_Output = data.v2;
|
||
var Rec_Learn_String_Input = data.v3;
|
||
var Client_Request_Cmd = Rec_Learn_String_Input.split(':');
|
||
switch (Client_Request_Cmd[0]) {
|
||
case "GetLearnPointCloud": {
|
||
Lu_Parse_LearnPointCloud(ROS_String_Output);
|
||
//console.log(PointCloud_Map);
|
||
Get_LearnPointCloud_File_OK = true;
|
||
}
|
||
break;
|
||
case "GetLearnPathTable": {
|
||
Lu_Parse_LearnPathTable(ROS_String_Output);
|
||
Get_LearnPathTable_File_OK = true;
|
||
//console.log("Right:"+ROS_String_Output);
|
||
//console.log(LearnPathTable_Line_Arr);
|
||
//document.getElementById('output').innerText=ROS_String_Output;
|
||
}
|
||
break;
|
||
case "GetLearnNodePointManagerTable": {
|
||
Lu_Parse_LearnNodePointManagerTable(ROS_String_Output);
|
||
Get_LearnNodePointManagerTable_File_OK = true;
|
||
//console.log("Right:"+ROS_String_Output);
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
default: {
|
||
var frame = event.data.split('#');
|
||
var head = frame[0].split(':');
|
||
|
||
switch (head[0]) {
|
||
case 'ButtonImage_Vertical_FollowCar': {
|
||
//var info=head[1].split('#');
|
||
ButtonImage_Vertical_FollowCar = head[1];
|
||
console.log(ButtonImage_Vertical_FollowCar);
|
||
}
|
||
break;
|
||
case 'Button_CanvasInit': {
|
||
Lu_CanvasInit();
|
||
}
|
||
break;
|
||
case 'Button_FindCar': {
|
||
Lu_FindCar();
|
||
}
|
||
break;
|
||
case 'Button_ZoomIn': {
|
||
Lu_ZoomIn();
|
||
}
|
||
break;
|
||
case 'Button_ZoomOut': {
|
||
Lu_ZoomOut();
|
||
}
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
|
||
}
|
||
|
||
function Lu_CanvasInit(ev) {
|
||
console.log("CanvasInit " + ScreenPanInitx + " " + ScreenPanInity + " " + ZoomInit);
|
||
|
||
var offset = new Point(0.0, 0.0);
|
||
//100 100 300
|
||
offset.x = ScreenPanInitx - CoordinateCanvasLine.OriginCanvasPosition.x;
|
||
offset.y = ScreenPanInity - CoordinateCanvasLine.OriginCanvasPosition.y;
|
||
paper.view.zoom = ZoomInit;
|
||
Lu_ParallelMoveDraw_CoordinateCanvasLine(CoordinateCanvasLine, offset);
|
||
Lu_ParallelMoveDraw_PathCanvasLineArr(LearnPathCanvasLineArr, offset);
|
||
Lu_ParallelMoveDraw_PathCanvasArcArr(LearnPathCanvasArcArr, offset);
|
||
Lu_ParallelMoveDraw_PathCanvasBezierArr(LearnPathCanvasBezierArr, offset);
|
||
Lu_ParallelMoveDraw_PathCanvasWayPointArr(LearnPathCanvasWayPointArr, offset);
|
||
Lu_ParallelMoveDraw_PathCanvasOriginTurnArr(LearnPathCanvasOriginTurnArr, offset);
|
||
Lu_ParallelMoveDraw_PathNodeCanavsArr(LearnPathNodeCanvasArr, offset);
|
||
Lu_ParallelMoveDraw_PointCloudCanvasArr(LearnPointCloudCanvasArr, offset);
|
||
Lu_ParallelMoveDraw_CarLearnWayPointABPath(CarLearnWayPointABPath, offset);
|
||
Lu_ParallelMoveDraw_CarLearnWayPointAB3Path(CarLearnWayPointAB3Path, offset);
|
||
Lu_ParallelMoveDraw_CarLearnWayPointAB4Path(CarLearnWayPointAB4Path, offset);
|
||
Lu_ParallelMoveDraw_CarPositionRecPath(CarPositionRecPath, offset);
|
||
//Lu_Record_HMIMapInfo(CoordinateCanvasLine);
|
||
}
|
||
|
||
function Lu_FindCar() {
|
||
Lu_Draw_CanvasWithCarCenter();
|
||
}
|
||
|
||
function Lu_ZoomIn() {
|
||
var ZoomDelta = 1.25;
|
||
paper.view.zoom = paper.view.zoom / ZoomDelta;
|
||
if (paper.view.zoom <= ZoomMin) {
|
||
paper.view.zoom = ZoomMin;
|
||
}
|
||
//Lu_Record_HMIMapInfo(CoordinateCanvasLine);
|
||
}
|
||
|
||
function Lu_ZoomOut() {
|
||
var ZoomDelta = 1.25;
|
||
paper.view.zoom = paper.view.zoom * ZoomDelta;
|
||
if (paper.view.zoom >= ZoomMax) {
|
||
paper.view.zoom = ZoomMax;
|
||
}
|
||
//Lu_Record_HMIMapInfo(CoordinateCanvasLine);
|
||
}
|
||
window.addEventListener("message", receiveMessage, false);
|
||
|
||
var canvas = document.getElementById('myCanvas');
|
||
addEvent(canvas, 'mousewheel', onMouseWheel);
|
||
addEvent(canvas, 'DOMMouseScroll', onMouseWheel);
|
||
// 当滚轮事件发生时,执行onMouseWheel这个函数
|
||
function onMouseWheel(ev) {
|
||
var ev = ev || window.event;
|
||
var down = true; // 定义一个标志,当滚轮向下滚时,执行一些操作
|
||
down = ev.wheelDelta ? ev.wheelDelta < 0 : ev.detail > 0;
|
||
var delta = ev.wheelDelta ? ev.wheelDelta : ev.detail * (-40);
|
||
if (down) {
|
||
//console.log("wheeldown!"+delta);
|
||
} else {
|
||
//console.log("wheelup!"+delta);
|
||
}
|
||
//console.log(paper.view.zoom);
|
||
var ZoomDelta = 1.25 * Math.abs(delta) / 120.0;
|
||
|
||
if (delta < 0) {
|
||
paper.view.zoom = paper.view.zoom / ZoomDelta;
|
||
if (paper.view.zoom <= ZoomMin) {
|
||
paper.view.zoom = ZoomMin;
|
||
//Zoom=paper.view.zoom;
|
||
}
|
||
} else {
|
||
paper.view.zoom = paper.view.zoom * ZoomDelta;
|
||
if (paper.view.zoom >= ZoomMax) {
|
||
paper.view.zoom = ZoomMax;
|
||
//Zoom=paper.view.zoom;
|
||
}
|
||
}
|
||
//Lu_Record_HMIMapInfo(CoordinateCanvasLine);
|
||
if (ev.preventDefault) {
|
||
/*FF 和 Chrome*/
|
||
ev.preventDefault(); // 阻止默认事件
|
||
}
|
||
return false;
|
||
}
|
||
}
|
||
|
||
function Lu_Init_Canvas() {
|
||
var canvas = document.getElementById('myCanvas');
|
||
paper.setup(canvas);
|
||
var ctx = canvas.getContext('2d');
|
||
//构建数学平面直角坐标系
|
||
var canvas_width = canvas.width;
|
||
var canvas_height = canvas.height;
|
||
console.log("Height:" + canvas_height);
|
||
console.log("Width:" + canvas_width);
|
||
}
|
||
</script>
|
||
<title>Title</title>
|
||
</head>
|
||
<body>
|
||
<canvas id="myCanvas" style="border:5px solid yellowgreen;background:white;width:1180px;height:765px;"
|
||
width="1180px" height="765px"></canvas>
|
||
</body>
|
||
<!-- <script src="../js/drag.js"></script> -->
|
||
</html> |