求助:使用VML画线问题
以下为我使用的代码:
<html xmlns:v>
<head>
<title>绘图</title>
<STYLE>v\:*{behavior:url(#default#VML);}</STYLE>
</head>
<body oncontextmenu="return false;">
<!--绘制虚线-->
<v:Line id="ctl_drawLine" style="position:absolute;z-index:2000;display:none" strokecolor="black" strokeweight="1px">
<v:Stroke dashstyle="shortdash"/>
</v:line>
<input type="button" value="HTML" onclick="alert(document.all.divCanvas.innerHTML);">
<input type="button" value="test" onclick="draw();">
<!--中间的画布-->
<div id="divCanvas" onselectstart="return false" style="position:absolute;left:0; top:27; width:995; height:570;background:#009999"></div>
<script>
//是否绘制线条
var fDrawLine=false;
//当前所选择的对象
var fx,fy;
//绘制图形的z-index
var zindex=1000;
//绘制对象数组
var index=0;
function divCanvas.onmousedown()
{
//保存坐标
fx=event.x;
fy=event.y;
//显示画线路径
var objLine=document.all("ctl_drawLine");
objLine.style.left=fx;
objLine.style.top=fy;
//objLine.from=fx+","+fy;
objLine.to="0,0";
objLine.style.display="";
//修改标识
fDrawLine=true;
}
function divCanvas.onmousemove()
{
if(fDrawLine && event.button==1)
{
var objLine=document.all("ctl_drawLine");
objLine.to=(event.x-fx)+","+(event.y-fy);
window.status="线条位置("+(event.x-fx)+","+(event.y-fy)+")";
}else{
window.status="当前位置("+event.x+","+event.y+")";
}
}
function divCanvas.onmouseup()
{
if(fDrawLine)
{
fDrawLine=false;
document.all("ctl_drawLine").style.display="none";
drawLine(fx,fy-divCanvas.offsetTop,event.x-fx,event.y-fy);
//divCanvas.appendChild(document.createElement("<v:line style='position:absolute;z-index:"+(zindex++)+";left:"+fx+"px;top:"+fy+"px;' to='"+(event.x-fx)+","+(event.y-fy)+"' strokecolor='black' strokeweight='1px'/>"))
}
}
//绘制线条
function drawLine(x1,y1,x2,y2)
{
//绘图index
index++;
var id="ctl_line"+index;
var strHtml='';
strHtml += '<v:line id="'+id+'" ctlNode="node" ctlType="line" style="position:absolute;z-index:-99;left:' + x1 + ';top:' + y1 + '" strokecolor="black" to="' + x2 + ',' + y2 + '" >';
strHtml += '<v:stroke EndArrow="Classic"/>';
strHtml += '</v:line>';
//prompt("",strHtml);
divCanvas.insertAdjacentHTML('beforeEnd',strHtml);
}
function draw()
{
divCanvas.insertAdjacentHTML('beforeEnd','<v:line id="ctl_line2" ctlNode="node" ctlType="line" style="position:absolute;z-index:-99;left:436;top:211" strokecolor="black" to="98,20" ><v:stroke EndArrow="Classic"/></v:line>');
}
</script>
</body>
</html>
相关推荐
1129 《2024年中国礼品行业展望白皮书》-38页.pdf
1129 《2024年中国礼品行业展望白皮书》-38页
机械三维3D设计图-等离子清洗机.zip
机械三维3D设计图-等离子清洗机.zip
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
内容概要:本文提出了一种基于神经网络的数据驱动迭代学习控制(ILC)算法,专门针对具有未知动态模型和重复任务需求的非线性单输入单输出(SISO)离散时间系统,应用于无人车路径跟踪问题,并提供了完整的Matlab代码实现。该方法充分利用神经网络强大的非线性逼近能力和数据驱动特性,结合迭代学习控制在周期性任务中逐次提升控制性能的优势,无需依赖被控对象的精确数学模型,即可实现对期望轨迹的高精度、渐进式跟踪。文中系统阐述了算法的整体架构设计、关键控制律的构建方式、权重更新机制以及在无人车系统中的具体实施流程,展示了其在复杂非线性环境下的有效性和鲁棒性。; 适合人群:具备自动控制理论、机器学习基础知识和Matlab编程能力的研究生、科研人员,以及从事自动驾驶、智能控制、机器人控制等领域的工程技术人员。; 使用场景及目标:①解决无人车、工业机器人等在执行重复性路径任务时的高精度轨迹跟踪问题;②为研究数据驱动控制、迭代学习控制与神经网络的深度融合提供一个完整的仿真案例和技术参考;③辅助研究人员复现先进控制算法,服务于学术论文的验证、课题研究或实际工程项目的技术预研。; 阅读建议:建议读者在学习过程中紧密结合所提供的Matlab代码,深入剖析算法各模块的具体实现逻辑,推荐预先掌握迭代学习控制的基本原理和神经网络的相关知识,并通过Simulink搭建仿真环境,进行不同工况下的实验验证,以深刻理解算法的控制效果、收敛特性及关键参数的调优策略。
机械三维3D设计图-线圈自动包绝缘胶纸机.zip
机械三维3D设计图-线圈自动包绝缘胶纸机.zip
MATLABSimulink模拟及会议论文,关于具备自动温度控制和能耗分析的智能太阳能热水系统。.zip
1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。


