Files
apt-nl-map/static/Magic4/HMI_Map2_bakhtml
2024-12-04 10:21:04 +08:00

1312 lines
60 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="css/bootstrap.min.css"/>
<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_MySQL_Driver.js"></script>
<script type="text/javascript" src="paperjs-v0.12.15/docs/assets/js/paper.js"></script>
<script type="text/javascript" type="text/javascript">
var Car_Global_rx=0;
var Car_Global_ry=0;
var Car_Global_Theta=0;
var Ref_std_rx=0;
var Ref_std_ry=0;
var Ref_std_rt=0;
var languageIndex ='';
function Timer(){
Car_Global_rx=parseFloat($.cookie('Car_Global_rx'));
Car_Global_ry=parseFloat($.cookie('Car_Global_ry'));
Car_Global_Theta=parseFloat($.cookie('Car_Global_Theta'));
Ref_std_rx=parseFloat($.cookie('Ref_std_rx'));
Ref_std_ry=parseFloat($.cookie('Ref_std_ry'));
Ref_std_rt=parseFloat($.cookie('Ref_std_rt'));
//console.log(Car_Global_rx.toFixed(3)+" "+Car_Global_ry.toFixed(3)+" "+Car_Global_Theta.toFixed(3));
}
var T1 = window.setInterval("Timer()",100);
/////////////////////////////////////////////////////////////////
paper.install(window);
var sleep = function(time) {
var startTime = new Date().getTime() + parseInt(time, 10);
while(new Date().getTime() < startTime) {}
};
function client_request(str){
$('#output').html("");
window.parent.postMessage(
{
event_id: 'client_request',
data: {
v1: str
}
},
"*" //or "www.parentpage.com"
);
}
function receiveMessage(event){
//console.log(event.data);
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_HMI_String_Input=data.v3;
var Client_Request_Cmd=Rec_HMI_String_Input.split(':');
//console.log(data);
switch(Client_Request_Cmd[0]){
case "GetPathTable":{
Lu_Parse_PathTable(ROS_String_Output);
Get_PathTable_File_OK=true;
//console.log(PathTable_Line_Arr);
//document.getElementById('output').innerText=ROS_String_Output;
}
break;
case "GetNodePointManagerTable":{
//console.log("GetNodePointManagerTable"+ROS_String_Output);
Lu_Parse_NodePointManagerTable(ROS_String_Output);
//console.log(NodePointManagerTable_PathNode_Arr);
//document.getElementById('output').innerText=ROS_String_Output;
Get_NodePointManagerTable_File_OK=true;
}
break;
case "GetStationFloorIndexTable": {
//console.log("GetStationFloorIndexTable"+ROS_String_Output);
Lu_Parse_StationFloorIndexTable(ROS_String_Output);
Lu_Create_NodePoint_Map_With_Name();
Get_StationFloorIndexTable_File_OK=true;
}
break;
case "GetPointCloud":{
//console.log("GetPointCloud"+ROS_String_Output);
Lu_Parse_PointCloud(ROS_String_Output);
//console.log(PointCloud_Map);
Get_PointCloud_File_OK=true;
}break;
}
}
break;
}
}
window.addEventListener("message", receiveMessage, false);
function client(str){
$('#output').html("");
var client_HMIString=new ROSLIB.Service({
ros:ros,
name:'/Service_HMIString',
serviceType:'lu_ps20l_msgs/Srv_HMIString'
});
var request = new ROSLIB.ServiceRequest({
HMI_String_Input:str
});
client_HMIString.callService(request,function(result) {
});
}
var Get_PathTable_File_OK=false;
var Get_NodePointManagerTable_File_OK=false;
var Get_StationFloorIndexTable_File_OK=false;
var Get_PointCloud_File_OK=false;
client_request("GetPathTable");
client_request("GetNodePointManagerTable");
client_request("GetStationFloorIndexTable");
client_request("GetPointCloud");
/////////////////////////////////////////////////////////////////////////////
function addEvent(obj,xEvent,fn) {
if(obj.attachEvent){
obj.attachEvent('on'+xEvent,fn);
}else{
obj.addEventListener(xEvent,fn,false);
}
}
/////////////////////////////////////////////////////////////////////////////
//var MouseDownPoint=new Point(0.0,0.0);
//var ScreenDrag=new Point(0.0,0.0);
//console.log("ScreenDrag:"+ScreenDrag);
//var ScreenPan=new Point(100.0,-100.0);
//var ScreenPan=new Point(100.0,-100.0);
//console.log("ScreenPan"+ScreenPan);
//var Zoom=1.0;
var ZoomMin=1e-4;
var ZoomMax=1e3;
var Resolution=20.0;
var Button_Vertical_FollowCar=false;
var Button_Vertical_FollowCar_Record=false;
var HMIMapInfo_Read_OK=false;
var HMIMapInfo_Record=decodeURIComponent($.cookie('HMIMapInfo_Record'));
const ScreenPanInitx=100.0;
const ScreenPanInity=300.0;
//console.log(ScreenPanInit);
var ZoomInit=1.0;
var ScreenPanRecord=new Point(ScreenPanInitx,ScreenPanInity);
var ZoomRecord=ZoomInit;
if(HMIMapInfo_Record!=""){
console.log("HMIMapInfo_Record:"+HMIMapInfo_Record);
var HMIMapInfo_arr=HMIMapInfo_Record.split(' ');
if(HMIMapInfo_arr[0]!="NaN")ScreenPanRecord.x=parseFloat(HMIMapInfo_arr[0]);
if(HMIMapInfo_arr[1]!="NaN")ScreenPanRecord.y=parseFloat(HMIMapInfo_arr[1]);
//ScreenDrag.x=parseFloat(HMIMapInfo_arr[2]);
//ScreenDrag.y=parseFloat(HMIMapInfo_arr[3]);
if(HMIMapInfo_arr[4]!="NaN")ZoomRecord=parseFloat(HMIMapInfo_arr[4]);
if(HMIMapInfo_arr[5]=="false")Button_Vertical_FollowCar_Record=false;
else Button_Vertical_FollowCar_Record=true;
HMIMapInfo_Read_OK=true;
}
else{
HMIMapInfo_Read_OK=true;
}
function Lu_Record_HMIMapInfo(CoordinateCanvasLine){
var HMIMapInfo=CoordinateCanvasLine.OriginCanvasPosition.x+" "+CoordinateCanvasLine.OriginCanvasPosition.y+" "+0.0+" "+0.0+" "+paper.view.zoom+" "+Button_Vertical_FollowCar;
//setCookie("HMIMapInfo",encodeURIComponent(HMIMapInfo),10000);
//setCookie("HMIMapInfo",encodeURIComponent(HMIMapInfo),86400000);
$.cookie("HMIMapInfo",encodeURIComponent(HMIMapInfo),{secure:true});
}
function Lu_Init_ButtonImage_Vertical_FollowCar(){
//Disable
if(Button_Vertical_FollowCar_Record){
document.getElementById("ButtonImage_Vertical_FollowCar").setAttribute("src","Led_Display/Button_Vertical_On.bmp");
}
else{
document.getElementById("ButtonImage_Vertical_FollowCar").setAttribute("src","Led_Display/Button_Vertical_Off.bmp");
}
Button_Vertical_FollowCar=Button_Vertical_FollowCar_Record;
}
/*
function Lu_GetPan(){
var obj = new Point(0.0,0.0);
obj.x=(ScreenPan.x+ScreenDrag.x);
obj.y=(ScreenPan.y+ScreenDrag.y);
return (obj);
}
function Lu_ModelVToCanvasV(lu_value){
return lu_value * Resolution * paper.view.zoom;
}
function Lu_ModelToCanvas(Model)
{
var canvas = document.getElementById('myCanvas');
var canvas_height=parseFloat(canvas.style.height);
var Pan=Lu_GetPan();
var x = Model.x * Resolution + Pan.x;
var y = canvas_height -Model.y + Pan.y;
//var x = Model.x * Resolution * paper.view.zoom + Pan.x;
//var y = canvas_height -Model.y * Resolution * paper.view.zoom + Pan.y;
var obj = new Object();
//console.log("Panx:"+Pan.x+" Pany:"+Pan.y);
//console.log( paper.view.center );
obj.x=x;//Math.floor(x);
obj.y=y;//Math.floor(y);
return obj;
}
function Lu_CanvasToModel(Canvas){
var canvas = document.getElementById('myCanvas');
var canvas_height=parseFloat(canvas.style.height);
var Pan=Lu_GetPan();
var x = Canvas.x - Pan.x;
var y = canvas_height - (Canvas.y - Pan.y);
var obj = new Object();
obj.x=x/ (Resolution);
obj.y=y/ (Resolution);
//obj.x=x/ (Resolution * paper.view.zoom);
//obj.y=y/ (Resolution * paper.view.zoom);
//console.log("x="+obj.x+" y="+obj.y);
return obj;
}
*/
function Lu_TransferModelToCanvasForCoordinateCanvas(Model,OriginCanvasInitPosition){
var canvas = document.getElementById('myCanvas');
var canvas_height=parseFloat(canvas.style.height);
//var Pan=Lu_GetPan();
var x = Model.x * Resolution + OriginCanvasInitPosition.x;
var y = canvas_height -Model.y * Resolution + OriginCanvasInitPosition.y;
var obj = new Object();
//console.log("Panx:"+Pan.x+" Pany:"+Pan.y);
//console.log( paper.view.center );
obj.x=x;//Math.floor(x);
obj.y=y;//Math.floor(y);
return obj;
}
function Lu_TransferModelToCanvasWithCoordinateCanvas(Model,CoordinateCanvasLine){
var canvas = document.getElementById('myCanvas');
// var canvas_height=parseFloat(canvas.style.height);
var x = Model.x * Resolution + CoordinateCanvasLine.OriginCanvasPosition.x;
var y = 0 -Model.y * Resolution + CoordinateCanvasLine.OriginCanvasPosition.y;
var obj = new Object();
//console.log("Panx:"+Pan.x+" Pany:"+Pan.y);
//console.log( paper.view.center );
obj.x=x;//Math.floor(x);
obj.y=y;//Math.floor(y);
return obj;
}
function Lu_Create_DebugCanvas(CanvasPosition,str,Color,Size,DebugCanvasArr){
var DebugCanvas=new PointText(CanvasPosition);
DebugCanvas.justification = 'center';
DebugCanvas.fillColor =Color;
DebugCanvas.content = str;
DebugCanvas.fontSize=Size;
DebugCanvasArr.push(DebugCanvas);
}
function Lu_Refresh_Debug_Canvas(DebugCanvasArr,CoordinateCanvasLine){
//console.log(CoordinateCanvasLine);
if(DebugCanvasArr.length>0)
{
var CarModelPosition = new Point(Car_Global_rx, Car_Global_ry);
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPosition,CoordinateCanvasLine);
CanvasPosition.y=CanvasPosition.y+20;
CanvasPosition.x=CanvasPosition.x+50;
DebugCanvasArr[0].content="x:"+Car_Global_rx.toFixed(3)+"m y:"+Car_Global_ry.toFixed(3)+"m tx:"+Car_Global_Theta.toFixed(3)+"°";
DebugCanvasArr[0].position=CanvasPosition;
}
}
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=Ref_std_rx;
RefModel.y_m=Ref_std_ry;
RefModel.t_deg=Ref_std_rt;
RefModelArr.push(RefModel);
}
function Lu_Create_TextModel(ModelPosition,Str,Color,Size,TextModelArr){
var TextModel=new Object();
TextModel.ModelPosition=ModelPosition;
TextModel.Str=Str;
TextModel.Color=Color;
TextModel.Size=Size;
TextModelArr.push(TextModel);
}
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(ModelStart,ModelEnd,Color,PathModelLineArr){
var PathModelLine=new Object();
PathModelLine.ModelStart=ModelStart;
PathModelLine.ModelEnd=ModelEnd;
PathModelLine.Color=Color;
PathModelLineArr.push(PathModelLine);
}
function Lu_Create_PathModelArc(from,to,through,Color,PathModelLineArr){
var PathModelArc=new Object();
PathModelArc.from=from;
PathModelArc.to=to;
PathModelArc.through=through;
PathModelArc.Color=Color;
PathModelLineArr.push(PathModelArc);
}
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_PathModelBezier(PathTable_Bezier,Color,PathModelBezierArr){
var PathModelBezier=new Object();
PathModelBezier.PathTable_Bezier=PathTable_Bezier;
PathModelBezier.Color=Color;
PathModelBezierArr.push(PathModelBezier);
}
function Lu_Create_PathModelOriginTurn(PathTable_OriginTurn,Color,PathModelOriginTurnArr){
var PathModelOriginTurn=new Object();
PathModelOriginTurn.PathTable_OriginTurn=PathTable_OriginTurn;
PathModelOriginTurn.Color=Color;
PathModelOriginTurnArr.push(PathModelOriginTurn);
//console.log(PathModelOriginTurn);
}
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_PointCloud(PointCloud,Color,Size,PointCloudModelArr){
var PointCloudModel=new Object();
PointCloudModel.PointCloud=PointCloud;
PointCloudModel.Color=Color;
PointCloudModel.Size=Size;
PointCloudModelArr.push(PointCloudModel);
}
function Lu_Draw_CarCanvasArr(CarModelArr,CarCanvasArr,CoordinateCanvasLine){
for(let i=0;i<CarModelArr.length;i++){
//var CarModel=CarModelArr[i];
var CarModelPosition=new Point(Car_Global_rx,Car_Global_ry);
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPosition,CoordinateCanvasLine);
//var CanvasPosition=Lu_ModelToCanvas(CarModelPosition);
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 CanvasHeading=Lu_ModelToCanvas(Heading);
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(Ref_std_rx,Ref_std_ry);
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(RefModelPosition,CoordinateCanvasLine);
//var CanvasPosition=Lu_ModelToCanvas(CarModelPosition);
var Heading=Lu_GetNextPoint_By_xs_ys_dirdeg(Ref_std_rx,Ref_std_ry,Ref_std_rt+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_Refresh_CarCanvasArr(CarCanvasArr,CoordinateCanvasLine){
if(CarCanvasArr.length>0) {
var CarCanvas = CarCanvasArr[0];
var CarModelPosition = new Point(Car_Global_rx, Car_Global_ry);
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(CarModelPosition,CoordinateCanvasLine);
//var CanvasPosition = Lu_ModelToCanvas(CarModelPosition);
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 CanvasHeading = Lu_ModelToCanvas(Heading);
CarCanvas.circle.position = CanvasPosition;
CarCanvas.path.segments[0].point = CanvasPosition;
CarCanvas.path.segments[1].point = CanvasHeading;
//console.log(Car_Global_rx.toFixed(3)+" "+Car_Global_ry.toFixed(3)+" "+Car_Global_Theta.toFixed(3));
//console.log(CarCanvas.path.segments.length);
//console.log(CarCanvas.path.segments[0].point);
//console.log(CarCanvas.path.segments[1].point);
//console.log(CarCanvas.circle.position);
}
}
function Lu_Refresh_RefCanvasArr(RefCanvasArr,CoordinateCanvasLine){
if(RefCanvasArr.length>0) {
var RefCanvas = RefCanvasArr[0];
var RefModelPosition = new Point(Ref_std_rx, Ref_std_ry);
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(RefModelPosition,CoordinateCanvasLine);
//var CanvasPosition = Lu_ModelToCanvas(CarModelPosition);
var Heading = Lu_GetNextPoint_By_xs_ys_dirdeg(Ref_std_rx, Ref_std_ry, Ref_std_rt + 90, 1.5);
var CanvasHeading = Lu_TransferModelToCanvasWithCoordinateCanvas(Heading,CoordinateCanvasLine);
//var CanvasHeading = Lu_ModelToCanvas(Heading);
RefCanvas.circle.position = CanvasPosition;
RefCanvas.path.segments[0].point = CanvasPosition;
RefCanvas.path.segments[1].point = CanvasHeading;
}
}
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 XCanvasTextPosition=Lu_ModelToCanvas(XModelText.ModelPosition);
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 YCanvasTextPosition=Lu_ModelToCanvas(YModelText.ModelPosition);
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);
//var XCanvasLineStart = Lu_ModelToCanvas(XModelLine.ModelStart);
//var XCanvasLineEnd = Lu_ModelToCanvas(XModelLine.ModelEnd);
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);
//var YCanvasLineStart = Lu_ModelToCanvas(YModelLine.ModelStart);
//var YCanvasLineEnd = Lu_ModelToCanvas(YModelLine.ModelEnd);
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;
}
function Lu_Draw_TextCanvasArr(TextModelArr,TextCanvasArr,CoordinateCanvasLine){
for(let i=0;i<TextModelArr.length;i++){
var TextModel=TextModelArr[i];
var CanvasPosition = Lu_TransferModelToCanvasWithCoordinateCanvas(TextModel.ModelPosition,CoordinateCanvasLine);
//var CanvasPosition=Lu_ModelToCanvas(TextModel.ModelPosition);
var text=new PointText(new Point(CanvasPosition.x,CanvasPosition.y));
text.justification = 'center';
text.fillColor = TextModel.Color;
text.content = TextModel.Str;
text.fontSize=TextModel.Size;//'25px';
TextCanvasArr.push(text);
}
}
function Lu_Draw_PathCanvasLineArr(PathModelLineArr,PathCanvasLineArr,CoordinateCanvasLine){
for(let i=0;i<PathModelLineArr.length;i++) {
var PathModelLine=PathModelLineArr[i];
var path = new paper.Path();
var CanvasStart = Lu_TransferModelToCanvasWithCoordinateCanvas(PathModelLine.ModelStart,CoordinateCanvasLine);
//var CanvasStart = Lu_ModelToCanvas(PathModelLine.ModelStart);
var CanvasEnd = Lu_TransferModelToCanvasWithCoordinateCanvas(PathModelLine.ModelEnd,CoordinateCanvasLine);
//var CanvasEnd = Lu_ModelToCanvas(PathModelLine.ModelEnd);
//var Lu_PathCanvasLine=new Object();
path.strokeColor = PathModelLine.Color;
path.moveTo(CanvasStart);
path.lineTo(CanvasEnd);
//Lu_PathCanvasLine.Path=path;
//Lu_PathCanvasLine.CanvasStart=CanvasStart;
//Lu_PathCanvasLine.CanvasEnd=CanvasEnd;
//PathCanvasLineArr.push(Lu_PathCanvasLine);
PathCanvasLineArr.push(path);
}
}
function Lu_Draw_PathCanvasArcArr(PathModelArcArr,PathCanvasArcArr,CoordinateCanvasLine){
for(let i=0;i<PathModelArcArr.length;i++){
var PathModelArc=PathModelArcArr[i];
var path = new paper.Path();
var Canvasfrom = Lu_TransferModelToCanvasWithCoordinateCanvas(PathModelArc.from,CoordinateCanvasLine);
var Canvasto = Lu_TransferModelToCanvasWithCoordinateCanvas(PathModelArc.to,CoordinateCanvasLine);
var Canvasthrough = Lu_TransferModelToCanvasWithCoordinateCanvas(PathModelArc.through,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);
path.strokeColor = PathModelArc.Color;
PathCanvasArcArr.push(path);
}
}
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 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);
path.strokeColor = PathModelWayPointArr[i].Color;
path.moveTo(CanvasStart);
path.lineTo(CanvasEnd);
PathCanvasWayPoint.push(path);
}
PathCanvasWayPointArr.push(PathCanvasWayPoint);
}
}
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];
//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);
path.strokeColor = PathModelBezierArr[i].Color;
path.moveTo(CanvasStart);
path.lineTo(CanvasEnd);
PathCanvasBeizer.push(path);
}
PathCanvasBezierArr.push(PathCanvasBeizer);
}
}
function Lu_Draw_PathCanvasOriginTurnArr(PathModelOriginTurnArr,PathCanvasOriginTurnArr,CoordinateCanvasLine){
for(let i=0;i<PathModelOriginTurnArr.length;i++){
var PathModelOriginTurn=PathModelOriginTurnArr[i].PathTable_OriginTurn;
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);
patharc.strokeColor = Color;
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);
pathlinefrom.strokeColor = Color;
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);
pathlineto.strokeColor = Color;
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_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_TextCanvasArr(TextCanvasArr,offset){
for(let i=0;i<TextCanvasArr.length;i++){
var text=TextCanvasArr[i];
text.position.x+=offset.x;
text.position.y+=offset.y;
}
}
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;
}
}
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_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_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_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_Draw_PathNode(PathNode,Color,nodearr,Size,ismodel){
var NodeModelPosition=new Point(PathNode.Node_x,PathNode.Node_y);
var CanvasPosition=Lu_ModelToCanvas(NodeModelPosition);
var Heading=Lu_GetNextPoint_By_xs_ys_dirdeg(PathNode.Node_x,PathNode.Node_y,PathNode.Node_thetax+90,0.1);
var CanvasHeading=Lu_ModelToCanvas(Heading);
if(Lu_Judge_Point_In_Canvas(CanvasPosition)==false && Lu_Judge_Point_In_Canvas(CanvasHeading)==false)return;
var CanvasSize;
if(ismodel){
CanvasSize=Lu_ModelVToCanvasV(Size);
}
else{
CanvasSize=Size*25;
}
if(CanvasSize<10)return;
var circle = new Path.Circle({
center: [80, 50],
radius: 5,
fillColor: Color
});
circle.position = CanvasPosition;
var path=new paper.Path();
path.moveTo(CanvasPosition);
path.lineTo(CanvasHeading);
path.strokeColor = "green";
path.strokeWidth = 5;
var text=new PointText(new Point(CanvasHeading.x+5,CanvasHeading.y-5));
text.justification = 'center';
text.fillColor = "green";
text.content = PathNode.NodeID;
text.fontSize=CanvasSize;//'25px';
var node = new Object();
node.circle=circle;
node.path=path;
node.text=text;
nodearr.push(node);
}
function Lu_Draw_OriginTurn(PathTable_OriginTurn,Color,patharr){
Lu_Draw_Arc(PathTable_OriginTurn.frompoint,PathTable_OriginTurn.topoint,PathTable_OriginTurn.throughpoint,Color,patharr);
Lu_Draw_Line(PathTable_OriginTurn.centerpoint,PathTable_OriginTurn.frompoint,Color,patharr);
Lu_Draw_Line(PathTable_OriginTurn.centerpoint,PathTable_OriginTurn.topoint,Color,patharr);
}
function Lu_Draw_Bezier(PathTable_Bezier,Color,patharr){
for(i=0;i<PathTable_Bezier.length;i++){
var Line=PathTable_Bezier[i];
Lu_Draw_Line(Line.startpoint,Line.endpoint,Color,patharr,2);
}
}
function Lu_Draw_Arc(from,to,through,Color,patharr,threshold=5){
var Canvasfrom=Lu_ModelToCanvas(from);
var Canvasto=Lu_ModelToCanvas(to);
var Canvasthrough=Lu_ModelToCanvas(through);
if(Lu_Judge_Point_In_Canvas(Canvasfrom)==false && Lu_Judge_Point_In_Canvas(Canvasthrough)==false && Lu_Judge_Point_In_Canvas(Canvasthrough)==false)return;
var dist=Lu_Get_Dist(Canvasfrom.x,Canvasfrom.y,Canvasto.x,Canvasto.y);
if(dist<=threshold)return;
var path = new Path.Arc(Canvasfrom, Canvasthrough, Canvasto);
path.strokeColor = Color;
patharr.push(path);
}
function Lu_Draw_Text(ModelPosition,str,Color,textarr,Size,ismodel){
var CanvasPosition=Lu_ModelToCanvas(ModelPosition);
var CanvasSize;
if(ismodel){
CanvasSize=Lu_ModelVToCanvasV(Size);
}
else{
CanvasSize=Size*25;
}
var text=new PointText(new Point(CanvasPosition.x,CanvasPosition.y));
text.justification = 'center';
text.fillColor = Color;
text.content = str;
text.fontSize=CanvasSize;//'25px';
textarr.push(text);
}
function Lu_Draw_Line(ModelStart,ModelEnd,Color,patharr,threshold=5){
var path=new paper.Path();
var CanvasStart=Lu_ModelToCanvas(ModelStart);
var CanvasEnd=Lu_ModelToCanvas(ModelEnd);
path.strokeColor = Color;
path.moveTo(CanvasStart);
path.lineTo(CanvasEnd);
patharr.push(path);
}
*/
var draw_sch=0;
var period_times=0;
window.onload = function() {
Lu_Init_Canvas();
//paper.view.zoom=Zoom;
//console.log("Zoom="+Zoom);
var CoordinateModelLine;
var CoordinateCanvasLine;
var TextModelArr=new Array();
var TextCanvasArr=new Array();
var PathModelLineArr=new Array();
var PathCanvasLineArr=new Array();
var PathModelArcArr=new Array();
var PathCanvasArcArr=new Array();
var PathModelBezierArr=new Array();
var PathCanvasBezierArr=new Array();
var PathModelWayPointArr=new Array();
var PathCanvasWayPointArr=new Array();
var PathModelOriginTurnArr=new Array();
var PathCanvasOriginTurnArr=new Array();
var PathNodeModelArr=new Array();
var PathNodeCanvasArr=new Array();
var PointCloudModelArr=new Array();
var PointCloudCanvasArr=new Array();
var CarModelArr=new Array();
var CarCanvasArr=new Array();
var RefModelArr=new Array();
var RefCanvasArr=new Array();
var DebugCanvasArr=new Array();
// var path = new Path.Rectangle([75, 75], [100, 100]);
// path.strokeColor = 'blue';
var Mouse_circle = new Path.Circle({
center: [80, 50],
radius: 10,
fillColor: 'green'
});
CoordinateModelLine=Lu_Create_CoordinateModelLine(2.0);
//Lu_Create_TextModel(new Point(2.0,0.0),"x","red",25,TextModelArr);
//Lu_Create_TextModel(new Point(0.0,2.0),"y","green",25,TextModelArr);
//Lu_Create_PathModelLine(new Point(0.0,0.0),new Point(2.0,0.0),"red",PathModelLineArr);
//Lu_Create_PathModelLine(new Point(0.0,0.0),new Point(0.0,2.0),"green",PathModelLineArr);
Lu_Create_RefModel(RefModelArr);
Lu_Create_CarModel(CarModelArr);
Lu_Create_DebugCanvas(new Point(50, 50),"Info1","red","15px",DebugCanvasArr);
//Lu_Draw_PathCanvasLineArr(PathModelLineArr,PathCanvasLineArr);
/*
Lu_Draw_Text(new Point(2.0,0.0),"x","red",textarr,1,false);
Lu_Draw_Line(new Point(0.0,0.0),new Point(2.0,0.0),"red",patharr);
Lu_Draw_Text(new Point(0.0,2.0),"y","green",textarr,1,false);
Lu_Draw_Line(new Point(0.0,0.0),new Point(0.0,2.0),"green",patharr);
*/
view.onFrame = function(event) {
//console.log(draw_sch);
if(draw_sch==0){
if(Get_PointCloud_File_OK && Get_StationFloorIndexTable_File_OK && Get_NodePointManagerTable_File_OK && Get_PathTable_File_OK){
draw_sch=1;
}
}
else if(draw_sch==1){
for(let j=0;j<PathTable_Line_Arr.length;j++){
var PathTable_Line=PathTable_Line_Arr[j];
//console.log(PathTable_Line);
Lu_Create_PathModelLine(PathTable_Line.start_point,PathTable_Line.end_point,"blue",PathModelLineArr);
}
for(let k=0;k<PathTable_Arc_Arr.length;k++){
var PathTable_Arc=PathTable_Arc_Arr[k];
Lu_Create_PathModelArc(PathTable_Arc.frompoint,PathTable_Arc.topoint,PathTable_Arc.throughpoint,"blue",PathModelArcArr);
}
for(let l=0;l<PathTable_Bezier_Arr.length;l++){
var PathTable_Bezier=PathTable_Bezier_Arr[l];
Lu_Create_PathModelBezier(PathTable_Bezier,"blue",PathModelBezierArr);
}
for(let l=0;l<PathTable_WayPoint_Arr.length;l++){
var PathTable_WayPoint=PathTable_WayPoint_Arr[l];
//console.log(PathTable_WayPoint);
Lu_Create_PathModelWayPoint(PathTable_WayPoint,"blue",PathModelWayPointArr);
}
for(let m=0;m<PathTable_OriginTurn_Arr.length;m++){
var PathTable_OriginTurn=PathTable_OriginTurn_Arr[m];
Lu_Create_PathModelOriginTurn(PathTable_OriginTurn,"blue",PathModelOriginTurnArr);
}
for(let n=0;n<NodePointManagerTable_PathNode_Arr.length;n++){
var PathNode=NodePointManagerTable_PathNode_Arr[n];
Lu_Create_PathNodeModel(PathNode,"orange",5,PathNodeModelArr);
}
for(let u=0;u<PointCloud_Arr.length;u++){
var p=PointCloud_Arr[u];
Lu_Create_PointCloud(p,"black",1,PointCloudModelArr);
//console.log(p);
}
draw_sch=2;
}
else if(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;
//CoordinateCanvasLine=Lu_Draw_CoordinateCanvasLine(CoordinateModelLine,new Point(100,-100));
Lu_Draw_RefCanvasArr(RefModelArr,RefCanvasArr,CoordinateCanvasLine);
Lu_Draw_CarCanvasArr(CarModelArr,CarCanvasArr,CoordinateCanvasLine);
Lu_Draw_TextCanvasArr(TextModelArr,TextCanvasArr,CoordinateCanvasLine);
Lu_Draw_PathCanvasLineArr(PathModelLineArr,PathCanvasLineArr,CoordinateCanvasLine);
Lu_Draw_PathCanvasArcArr(PathModelArcArr,PathCanvasArcArr,CoordinateCanvasLine);
Lu_Draw_PathCanvasBezierArr(PathModelBezierArr,PathCanvasBezierArr,CoordinateCanvasLine);
Lu_Draw_PathCanvasWayPointArr(PathModelWayPointArr,PathCanvasWayPointArr,CoordinateCanvasLine);
Lu_Draw_PathCanvasOriginTurnArr(PathModelOriginTurnArr,PathCanvasOriginTurnArr,CoordinateCanvasLine);
Lu_Draw_PathNodeCanvasArr(PathNodeModelArr,PathNodeCanvasArr,CoordinateCanvasLine);
Lu_Draw_PointCloudCanvasArr(PointCloudModelArr,PointCloudCanvasArr,CoordinateCanvasLine);
paper.project.view.update();
draw_sch=3;
}
else if(draw_sch==3){
if(HMIMapInfo_Read_OK){
Lu_Init_ButtonImage_Vertical_FollowCar();
draw_sch=4;
}
}
else if(draw_sch==4){
}
// path.rotate(3);
period_times=period_times+1;
if(draw_sch==4 && period_times>=5){
Lu_Refresh_RefCanvasArr(RefCanvasArr,CoordinateCanvasLine);
Lu_Refresh_CarCanvasArr(CarCanvasArr,CoordinateCanvasLine);
Lu_Refresh_Debug_Canvas(DebugCanvasArr,CoordinateCanvasLine);
if(Button_Vertical_FollowCar){
Lu_Draw_CanvasWithCarCenter();
}
period_times=0;
}
}
view.onMouseDown = function(event){
//MouseDownPoint=event.point;
//textarr_record=textarr;
}
view.onMouseDrag = function(event){
Mouse_circle.position = event.point;
//ScreenDrag.x+=event.delta.x;//(event.point.x-MouseDownPoint.x);
//ScreenDrag.y+=event.delta.y;//(event.point.y-MouseDownPoint.y);
//console.log(event.point+" "+MouseDownPoint+" "+ScreenDrag);
Lu_ParallelMoveDraw_CoordinateCanvasLine(CoordinateCanvasLine,event.delta);
Lu_ParallelMoveDraw_PathCanvasLineArr(PathCanvasLineArr,event.delta);
Lu_ParallelMoveDraw_PathCanvasArcArr(PathCanvasArcArr,event.delta);
Lu_ParallelMoveDraw_PathCanvasBezierArr(PathCanvasBezierArr,event.delta);
Lu_ParallelMoveDraw_PathCanvasWayPointArr(PathCanvasWayPointArr,event.delta);
Lu_ParallelMoveDraw_PathCanvasOriginTurnArr(PathCanvasOriginTurnArr,event.delta);
Lu_ParallelMoveDraw_PathNodeCanavsArr(PathNodeCanvasArr,event.delta);
Lu_ParallelMoveDraw_PointCloudCanvasArr(PointCloudCanvasArr,event.delta);
Lu_ParallelMoveDraw_TextCanvasArr(TextCanvasArr,event.delta);
Lu_Record_HMIMapInfo(CoordinateCanvasLine);
paper.project.view.update();
}
view.onMouseUp = function(event){
//ScreenPan.x = ScreenPan.x+ScreenDrag.x;
//ScreenPan.y = ScreenPan.y+ScreenDrag.y;
//ScreenDrag.x=0;
//ScreenDrag.y=0;
}
//https://blog.csdn.net/u014205965/article/details/46045099/
//接着利用我们自己封装的函数给canvas绑定事件
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;
}
var Button_FindCar = document.getElementById('Button_FindCar');
var ButtonImage_Vertical_FollowCar= document.getElementById('ButtonImage_Vertical_FollowCar');
addEvent(Button_CanvasInit,'click',Lu_CanvasInit);
addEvent(Button_FindCar,'click',Lu_FindCar);
addEvent(Button_ZoomIn,'click',Lu_ZoomIn);
addEvent(Button_ZoomOut,'click',Lu_ZoomOut);
addEvent(ButtonImage_Vertical_FollowCar,'click',Lu_FollowCar);
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){
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);
//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(PathCanvasLineArr,offset);
Lu_ParallelMoveDraw_PathCanvasArcArr(PathCanvasArcArr,offset);
Lu_ParallelMoveDraw_PathCanvasBezierArr(PathCanvasBezierArr,offset);
Lu_ParallelMoveDraw_PathCanvasWayPointArr(PathCanvasWayPointArr,offset);
Lu_ParallelMoveDraw_PathCanvasOriginTurnArr(PathCanvasOriginTurnArr,offset);
Lu_ParallelMoveDraw_PathNodeCanavsArr(PathNodeCanvasArr,offset);
Lu_ParallelMoveDraw_PointCloudCanvasArr(PointCloudCanvasArr,offset);
Lu_ParallelMoveDraw_TextCanvasArr(TextCanvasArr,offset);
}
function Lu_CanvasInit(ev){
console.log("CanvasInit "+ScreenPanInitx+" "+ScreenPanInity+" "+ZoomInit);
var offset=new Point(0.0,0.0);
offset.x=ScreenPanInitx-CoordinateCanvasLine.OriginCanvasPosition.x;
offset.y=ScreenPanInity-CoordinateCanvasLine.OriginCanvasPosition.y;
paper.view.zoom=ZoomInit;
Lu_ParallelMoveDraw_CoordinateCanvasLine(CoordinateCanvasLine,offset)
Lu_ParallelMoveDraw_PathCanvasLineArr(PathCanvasLineArr,offset);
Lu_ParallelMoveDraw_PathCanvasArcArr(PathCanvasArcArr,offset);
Lu_ParallelMoveDraw_PathCanvasBezierArr(PathCanvasBezierArr,offset);
Lu_ParallelMoveDraw_PathCanvasWayPointArr(PathCanvasWayPointArr,offset);
Lu_ParallelMoveDraw_PathCanvasOriginTurnArr(PathCanvasOriginTurnArr,offset);
Lu_ParallelMoveDraw_PathNodeCanavsArr(PathNodeCanvasArr,offset);
Lu_ParallelMoveDraw_PointCloudCanvasArr(PointCloudCanvasArr,offset);
Lu_ParallelMoveDraw_TextCanvasArr(TextCanvasArr,offset);
Lu_Record_HMIMapInfo(CoordinateCanvasLine);
}
function Lu_FindCar(ev){
console.log("Lu_FindCar");
Lu_Draw_CanvasWithCarCenter();
}
function Lu_ZoomIn(ev){
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(ev){
var ZoomDelta = 1.25;
paper.view.zoom=paper.view.zoom*ZoomDelta;
if(paper.view.zoom>=ZoomMax){
paper.view.zoom=ZoomMax;
}
Lu_Record_HMIMapInfo(CoordinateCanvasLine);
}
function Lu_FollowCar(ev){
if(Button_Vertical_FollowCar==false){
Button_Vertical_FollowCar=true;
document.getElementById("ButtonImage_Vertical_FollowCar").setAttribute("src","Led_Display/Button_Vertical_On.bmp");
}
else{
Button_Vertical_FollowCar=false;
document.getElementById("ButtonImage_Vertical_FollowCar").setAttribute("src","Led_Display/Button_Vertical_Off.bmp");
}
Lu_Record_HMIMapInfo(CoordinateCanvasLine);
}
}
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);
}
window.onresize = () => {
let width = document.body.clientWidth*0.95;
let height = document.body.clientHeight*0.7;
console.log(`body宽度${document.body.clientWidth},,,,${width}`);
console.log(`body高度${document.body.clientHeight},,,,${height}`);
var canvas = document.getElementById('myCanvas');
canvas.style.width = width;
canvas.style.width = height;
};
</script>
<title>Title</title>
</head>
<body>
<div class="top">
<img id="ButtonImage_Vertical_FollowCar" src="Led_Display/Button_Vertical_Off.bmp"/>
<input type=button class="btn" id="Button_CanvasInit" data-i18n-value="map.canvasInit" value="初始化" style="width:10%;height:50px;background:#FD4F00FF"></input>
<input type=button class="btn" id="Button_FindCar" data-i18n-value="map.findCar" value="车辆位置" style="width:10%;height:50px;background:#FD4F00FF"></input>
<input type=button class="btn" id="Button_ZoomIn" data-i18n-value="map.zoomIn" value="缩小" style="width:10%;height:50px;background:#FD4F00FF"></input>
<input type=button class="btn" id="Button_ZoomOut" data-i18n-value="map.zoomOut" value="放大" style="width:10%;height:50px;background:#FD4F00FF"></input>
</div>
<div id="output"></div>
<canvas id="myCanvas" style="border:5px solid rgb(153, 153, 153);background:white;width:1550px;height:730px;" width="1550px" height="730px"></canvas>
</body>
<script type="text/javascript" src="js/i18n/TimeI18n.js"></script>
<script type="text/javascript">
loadText();
</script>
<style>
.top{
margin-bottom: 10px;
}
.top img{
vertical-align: middle;
margin: 0px 5px;
}
.top input{
display: inline-block;
margin: 0px 5px;
color: white;
}
</style>
</html>