实时绘制路线
鼠标点击场景实时绘制路线,返回坐标点后可用于实时生产路线样式,并加入动画模型
参数
new MMSDT.drawPath( parameter)
parameter = {
color: 0x00ff00, //画线颜色
high: 0.5, //相对坐标点的高度
size: 1.5, //点的大小
tension: 0.3, //线条张力(转折点的圆滑度)
}
属性
.start()
开始画线
.end()
停止画线并返回坐标点数组
代码示例
var eventMouse = [];
var onMove = [];
var outMove = function(){ }
var onDown = [];
var onDouble = [];
var moveColor = [];
function goBack( dateJson ){}
//构建函数监听鼠标事件
MMSDT.mouseEvent( eventMouse, onMove, outMove, onDown, onDouble, moveColor, false, false, goBack );
//需要生成的路线样式1
var lineStyle1 = {
texture: [dirUrl+"textures/line1.png"], //指定贴图箭头
repeat: 20, //贴图密度
speed: 0.2, //流动速度,数字越大越快
high: 0.5, //相对坐标点的高度
width: 4, //线条宽度
closed: false, //线条是否封口
help: false, //是否显示辅助线
tension: 0.3, //线条张力(转折点的圆滑度)
};
//需要生成的路线样式2
var lineStyle2 = {
texture: [dirUrl+"textures/line2.png"], //指定贴图箭头
repeat: 20, //贴图密度
speed: 0.2, //流动速度,数字越大越快
high: 0.5, //相对坐标点的高度
width: 3, //线条宽度
closed: false, //线条是否封口
help: false, //是否显示辅助线
tension: 0.3, //线条张力(转折点的圆滑度)
};
//需要生成的路线样式3
var lineStyle3 = {
texture: [dirUrl+"textures/line3.png"], //指定贴图箭头
repeat: 20, //贴图密度
speed: 0.2, //流动速度,数字越大越快
high: 0.5, //相对坐标点的高度
width: 4, //线条宽度
closed: false, //线条是否封口
help: false, //是否显示辅助线
tension: 0.3, //线条张力(转折点的圆滑度)
};
var lines=[], lineList=-1; //线条及数量
//添加定位模型
var setting = {
model: ['models/man/hongren.gltf', 'models/man/lvren.gltf'], //需要添加的定位模型
icon: ['textures/line3.png','textures/line1.png'], //显示图标
scale: 20, //三维模型缩放大小
rotation: Math.PI*0.5, //面向前,旋转偏移
speed: 0.8, //移动速度
height: 20, //图标相对高度
size: 0.8, //图标缩放大小
}
var aodm = new MMSDT.addOrDellModel( setting );
//鼠标右键绘制路线
var parameter = {
color: 0x00ff00, //画线颜色
high: 0.5, //相对坐标点的高度
size: 1.5, //点的大小
tension: 0.3, //线条张力(转折点的圆滑度)
}
var startDraw = new MMSDT.drawPath( parameter ); //默认鼠标右键绘制,须鼠标监听开启
//使用MMAPI类,自定义外部函数接口
//开始画线
MMAPI.beginDraw = function(){
alert("使用鼠标右键:点击地面画线");
//调用构建函数的开始属性
startDraw.start();
}
//结束画线
MMAPI.endDraw = function(list){
//调用构建函数的结束属性,并返回坐标点的值
var getArray = startDraw.end();
//重新格式化坐标点,把三维向量格式转成数组格式
var paths=[]; paths[0]=[];
for( var i=0; i < getArray.length; i++ ){
paths[0].push( [getArray[i].x, getArray[i].y, getArray[i].z] );
}
//画线
if( paths[0].length > 1){
lineList++;
if( list == 1 ){
lines[lineList] = new MMSDT.initDrawPath( paths, lineStyle1 ); //样式1(调用路线的构建函数)(路径,样式)
aodm.add(1,getArray); //添加小人(小人样式,路径)
}else if( list == 2 ){
lines[lineList] = new MMSDT.initDrawPath( paths, lineStyle2 ); //样式2(调用路线的构建函数)(路径,样式)
aodm.add(0,getArray); //添加小人(小人样式,路径)
}else if( list == 3 ){
lines[lineList] = new MMSDT.initDrawPath( paths, lineStyle3 ); //样式3(调用路线的构建函数)(路径,样式)
aodm.add(0,getArray); //添加小人(小人样式,路径)
}
}
}
//删除路线
MMAPI.delDraw = function(){
aodm.remove(); //删除人物
for( var i=0; i<=lineList; i++ ){
lines[i].remove(); //删除线条
}
lineList=0;
}
在线演示
Powered by mms3D