VML实现铅笔功能?
时间:2008-08-20
来源:互联网
请问如何用VML或其他的方式实现类似系统画图里面的铅笔那样的画线功能?
因为做课件, 在讲解的过程中需要标记或写字之类, 小生跪求代码或思路...谢谢
因为做课件, 在讲解的过程中需要标记或写字之类, 小生跪求代码或思路...谢谢
作者: test01x 发布时间: 2008-08-20



作者: test01x 发布时间: 2008-08-20
实际程序
<HTML xmlns:v> <HEAD> <META http-equiv='Content-Type' content='text/html;charset=gb2312'> <Meta name='Gemeratpr' content='网络程序员伴侣(Lshdic)2005'> <TITLE>VML最简实现铅笔绘图功能</TITLE> <STYLE> v\:*{behavior:url(#default#VML);} /*声明V为VML变量*/ </STYLE> </HEAD> <body bgcolor=black> <div id=div1 style="background-color:white;width:400;height:400"></div><br><input type=button value="清空" onclick="div1.innerHTML=''"> <script> //作者:风云舞 var xx=0,yy=0,oldvalue="",poly1,zz=1 function div1.onmousedown(){ //鼠标按下 if(event.button==1){ div1.setCapture() //画笔绘画开始,锁定鼠标 color1="red" //定义画笔基本颜色 size1=1 //定义画笔基本粗度 xx=event.x;yy=event.y;zz+=1 //定义基本起始坐标,zz是第三维,默认递增 poly1=div1.appendChild(document.createElement("<v:shape filled=false path='m0,0 l0,0' style='position:absolute;z-index:"+zz+";left:"+xx+";top:"+yy+";width:100;height:100' strokecolor='"+color1+"' strokeweight='"+size1+"' coordsize='100,100'/>")) oldvalue=poly1.path.value.replace("e","") }} function div1.onmousemove(){ //鼠标移动 if(event.button==1){ if(event.srcElement.tagName=="BODY"){div1.releaseCapture();return false} oldvalue+=","+(event.x-xx)+","+(event.y-yy);poly1.path.value=oldvalue poly1.path.value=poly1.path.value.replace(",0,",",").replace(",0 e","e") }} function div1.onmouseup(){ //鼠标弹起 div1.releaseCapture(); } </script>
提示:您可以先修改部分代码再运行
学习程序
<HTML> <HEAD> <META http-equiv="Content-Type" content="text/html;charset=gb2312"> <META name="语法加亮工具" content="NBCoder2(代码花姑娘2)"> <META name="GENERATOR" content="网络程序员伴侣(Lshdic)2005"> <TITLE>你的标题</TITLE> <STYLE> *{font-size:13px;font-family:黑体,宋体,隶书,Courier New,System,Courier;} font{font-weight:normal;} </STYLE> </HEAD> <BODY link="blue" vlink="blue" alink="blue" style="word-break:break-all"> <BASE target="_blank"> <DIV STYLE="COLOR:rgb(0,0,0)" NBCoder-Style="Lshdic2005默认"> <FONT color="#0000B4"><HTML </FONT><FONT color="#AA00AA">xmlns:v</FONT><FONT color="#0000B4">></FONT></FONT> <BR><FONT color="#0000B4"><HEAD></FONT> <BR><FONT color="#0000B4"><META </FONT><FONT color="#AA00AA">http-equiv='Content-Type' content='text/html;charset=gb2312'</FONT><FONT color="#0000B4">></FONT></FONT> <BR><FONT color="#0000B4"><Meta </FONT><FONT color="#AA00AA"><FONT color="#FF0000">name='Gemeratpr'</FONT> content='网络程序员伴侣(Lshdic)2005'</FONT><FONT color="#0000B4">></FONT></FONT> <BR><FONT color="#0000B4"><TITLE></FONT>VML最简实现铅笔绘图功能<FONT color="#0000B4"></TITLE></FONT> <BR><FONT color="#FF0000"><B><STYLE></B></FONT> <BR>v\:*{behavior:url(#default#VML);} <FONT color="#158515">/*声明V为VML变量*/</FONT> <BR> <BR><FONT color="#FF0000"><B></STYLE></B></FONT> <BR><FONT color="#0000B4"></HEAD></FONT> <BR><FONT color="#0000B4"><body </FONT><FONT color="#AA00AA">bgcolor=black</FONT><FONT color="#0000B4">></FONT></FONT> <BR><FONT color="#0000B4"><div </FONT><FONT color="#AA00AA"><FONT color="#FF0000">id=div1</FONT> <FONT color="#000000"><B>style=</B></FONT>"background-color:white;width:400;height:400"</FONT><FONT color="#0000B4">></FONT></FONT><FONT color="#0000B4"></div></FONT><FONT color="#0000B4"><br></FONT><FONT color="#0000B4"><input </FONT><FONT color="#AA00AA">type=button value="清空" onclick="div1.innerHTML=''"</FONT><FONT color="#0000B4">></FONT></FONT> <BR> <BR><FONT color="#FF0000"><B><script></B></FONT> <FONT color="#158515"> //作者:风云舞 </FONT> <BR> <FONT color="#0000FF">var xx=0,yy=0,oldvalue="",poly1,zz=1</FONT> <BR><FONT color="#000000"><B>function div1.onmousedown()</B></FONT>{ <FONT color="#158515"> //鼠标按下 </FONT> <BR> <FONT color="#FF0000">if(event.button==1)</FONT>{ <BR>div1.setCapture() <FONT color="#158515"> //画笔绘画开始,锁定鼠标 </FONT> <BR> color1="red" <FONT color="#158515"> //定义画笔基本颜色 </FONT> <BR> size1=1 <FONT color="#158515"> //定义画笔基本粗度 </FONT> <BR> xx=event.x;yy=event.y;zz+=1 <FONT color="#158515"> //定义基本起始坐标,zz是第三维,默认递增 </FONT> <BR> poly1=div1.appendChild(document.createElement("<FONT color="#0000B4"><v:shape </FONT><FONT color="#AA00AA">filled=false path='m0,0 l0,0' <FONT color="#000000"><B>style=</B></FONT>'position:absolute;z-index:"+zz+";left:"+xx+";top:"+yy+";width:100;height:100' strokecolor='"+color1+"' strokeweight='"+size1+"' coordsize='100,100'/</FONT><FONT color="#0000B4">></FONT></FONT>")) <BR>oldvalue=poly1.path.value.replace("e","") <BR>}} <BR> <BR><FONT color="#000000"><B>function div1.onmousemove()</B></FONT>{ <FONT color="#158515"> //鼠标移动 </FONT> <BR> <FONT color="#FF0000">if(event.button==1)</FONT>{ <BR><FONT color="#FF0000">if(event.srcElement.tagName=="BODY")</FONT>{div1.releaseCapture();<FONT color="#0000FF">return false</FONT>} <BR>oldvalue+=","+(event.x-xx)+","+(event.y-yy);poly1.path.value=oldvalue <BR>poly1.path.value=poly1.path.value.replace(",0,",",").replace(",0 e","e") <BR>}} <BR> <BR><FONT color="#000000"><B>function div1.onmouseup()</B></FONT>{ <FONT color="#158515"> //鼠标弹起 </FONT> <BR> div1.releaseCapture(); <BR>} <BR><FONT color="#FF0000"><B></script></B></FONT> </div> </BODY> </HTML>
提示:您可以先修改部分代码再运行
[ 本帖最后由 风云舞 于 2008-9-5 21:04 编辑 ]
<HTML xmlns:v> <HEAD> <META http-equiv='Content-Type' content='text/html;charset=gb2312'> <Meta name='Gemeratpr' content='网络程序员伴侣(Lshdic)2005'> <TITLE>VML最简实现铅笔绘图功能</TITLE> <STYLE> v\:*{behavior:url(#default#VML);} /*声明V为VML变量*/ </STYLE> </HEAD> <body bgcolor=black> <div id=div1 style="background-color:white;width:400;height:400"></div><br><input type=button value="清空" onclick="div1.innerHTML=''"> <script> //作者:风云舞 var xx=0,yy=0,oldvalue="",poly1,zz=1 function div1.onmousedown(){ //鼠标按下 if(event.button==1){ div1.setCapture() //画笔绘画开始,锁定鼠标 color1="red" //定义画笔基本颜色 size1=1 //定义画笔基本粗度 xx=event.x;yy=event.y;zz+=1 //定义基本起始坐标,zz是第三维,默认递增 poly1=div1.appendChild(document.createElement("<v:shape filled=false path='m0,0 l0,0' style='position:absolute;z-index:"+zz+";left:"+xx+";top:"+yy+";width:100;height:100' strokecolor='"+color1+"' strokeweight='"+size1+"' coordsize='100,100'/>")) oldvalue=poly1.path.value.replace("e","") }} function div1.onmousemove(){ //鼠标移动 if(event.button==1){ if(event.srcElement.tagName=="BODY"){div1.releaseCapture();return false} oldvalue+=","+(event.x-xx)+","+(event.y-yy);poly1.path.value=oldvalue poly1.path.value=poly1.path.value.replace(",0,",",").replace(",0 e","e") }} function div1.onmouseup(){ //鼠标弹起 div1.releaseCapture(); } </script>
提示:您可以先修改部分代码再运行
学习程序
<HTML> <HEAD> <META http-equiv="Content-Type" content="text/html;charset=gb2312"> <META name="语法加亮工具" content="NBCoder2(代码花姑娘2)"> <META name="GENERATOR" content="网络程序员伴侣(Lshdic)2005"> <TITLE>你的标题</TITLE> <STYLE> *{font-size:13px;font-family:黑体,宋体,隶书,Courier New,System,Courier;} font{font-weight:normal;} </STYLE> </HEAD> <BODY link="blue" vlink="blue" alink="blue" style="word-break:break-all"> <BASE target="_blank"> <DIV STYLE="COLOR:rgb(0,0,0)" NBCoder-Style="Lshdic2005默认"> <FONT color="#0000B4"><HTML </FONT><FONT color="#AA00AA">xmlns:v</FONT><FONT color="#0000B4">></FONT></FONT> <BR><FONT color="#0000B4"><HEAD></FONT> <BR><FONT color="#0000B4"><META </FONT><FONT color="#AA00AA">http-equiv='Content-Type' content='text/html;charset=gb2312'</FONT><FONT color="#0000B4">></FONT></FONT> <BR><FONT color="#0000B4"><Meta </FONT><FONT color="#AA00AA"><FONT color="#FF0000">name='Gemeratpr'</FONT> content='网络程序员伴侣(Lshdic)2005'</FONT><FONT color="#0000B4">></FONT></FONT> <BR><FONT color="#0000B4"><TITLE></FONT>VML最简实现铅笔绘图功能<FONT color="#0000B4"></TITLE></FONT> <BR><FONT color="#FF0000"><B><STYLE></B></FONT> <BR>v\:*{behavior:url(#default#VML);} <FONT color="#158515">/*声明V为VML变量*/</FONT> <BR> <BR><FONT color="#FF0000"><B></STYLE></B></FONT> <BR><FONT color="#0000B4"></HEAD></FONT> <BR><FONT color="#0000B4"><body </FONT><FONT color="#AA00AA">bgcolor=black</FONT><FONT color="#0000B4">></FONT></FONT> <BR><FONT color="#0000B4"><div </FONT><FONT color="#AA00AA"><FONT color="#FF0000">id=div1</FONT> <FONT color="#000000"><B>style=</B></FONT>"background-color:white;width:400;height:400"</FONT><FONT color="#0000B4">></FONT></FONT><FONT color="#0000B4"></div></FONT><FONT color="#0000B4"><br></FONT><FONT color="#0000B4"><input </FONT><FONT color="#AA00AA">type=button value="清空" onclick="div1.innerHTML=''"</FONT><FONT color="#0000B4">></FONT></FONT> <BR> <BR><FONT color="#FF0000"><B><script></B></FONT> <FONT color="#158515"> //作者:风云舞 </FONT> <BR> <FONT color="#0000FF">var xx=0,yy=0,oldvalue="",poly1,zz=1</FONT> <BR><FONT color="#000000"><B>function div1.onmousedown()</B></FONT>{ <FONT color="#158515"> //鼠标按下 </FONT> <BR> <FONT color="#FF0000">if(event.button==1)</FONT>{ <BR>div1.setCapture() <FONT color="#158515"> //画笔绘画开始,锁定鼠标 </FONT> <BR> color1="red" <FONT color="#158515"> //定义画笔基本颜色 </FONT> <BR> size1=1 <FONT color="#158515"> //定义画笔基本粗度 </FONT> <BR> xx=event.x;yy=event.y;zz+=1 <FONT color="#158515"> //定义基本起始坐标,zz是第三维,默认递增 </FONT> <BR> poly1=div1.appendChild(document.createElement("<FONT color="#0000B4"><v:shape </FONT><FONT color="#AA00AA">filled=false path='m0,0 l0,0' <FONT color="#000000"><B>style=</B></FONT>'position:absolute;z-index:"+zz+";left:"+xx+";top:"+yy+";width:100;height:100' strokecolor='"+color1+"' strokeweight='"+size1+"' coordsize='100,100'/</FONT><FONT color="#0000B4">></FONT></FONT>")) <BR>oldvalue=poly1.path.value.replace("e","") <BR>}} <BR> <BR><FONT color="#000000"><B>function div1.onmousemove()</B></FONT>{ <FONT color="#158515"> //鼠标移动 </FONT> <BR> <FONT color="#FF0000">if(event.button==1)</FONT>{ <BR><FONT color="#FF0000">if(event.srcElement.tagName=="BODY")</FONT>{div1.releaseCapture();<FONT color="#0000FF">return false</FONT>} <BR>oldvalue+=","+(event.x-xx)+","+(event.y-yy);poly1.path.value=oldvalue <BR>poly1.path.value=poly1.path.value.replace(",0,",",").replace(",0 e","e") <BR>}} <BR> <BR><FONT color="#000000"><B>function div1.onmouseup()</B></FONT>{ <FONT color="#158515"> //鼠标弹起 </FONT> <BR> div1.releaseCapture(); <BR>} <BR><FONT color="#FF0000"><B></script></B></FONT> </div> </BODY> </HTML>
提示:您可以先修改部分代码再运行
[ 本帖最后由 风云舞 于 2008-9-5 21:04 编辑 ]
作者: 风云舞 发布时间: 2008-09-05
风云舞老大,你这个例子完成后能保存到后台,或者保存成图片吗?
作者: 101010110001 发布时间: 2008-11-04
读div1.innerHTML,后台能存,图片好像不能保存,除非建立ACTIVEX
作者: 风云舞 发布时间: 2008-11-05
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28