JavaScript點選兩點繪製直線
本章節分享一段程式碼例項,它實現點選兩點能夠繪製一條直線的效果。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> #container{ width:1000px; height:600px; border:1px #bfbfbf solid; } </style> <script type="text/javascript"> function makedot(x,y){ pointDiv="<div style='height:1px;position:absolute;left:" + x +"px;top:" + y + "px;width:1px;background:#f00;overflow:hidden'></div>"; return pointDiv; } function line(x1,y1,x2,y2){ var slope; //斜率 var direction;//座標運動方向 var tx = x2 - x1; var ty = y2 - y1; if(tx == 0 && ty == 0)return; var points = ""; var axis;//座標軸上的座標 if(Math.abs(tx) >= Math.abs(ty)){//在x軸上移動 direction = tx > 0 ? 1 : -1; tx = Math.abs(tx); slope = ty / tx; axis = x1; for(i = 0; i < tx; i ++){ points += makedot(axis, y1 + i * slope); axis += direction; } } else{//在y軸上移動 direction = ty > 0 ? 1 : -1; ty = Math.abs(ty); slope = tx / ty; axis = y1; for(i = 0; i < ty; i ++){ points += makedot(x1 + i * slope, axis); axis += direction; } } var container = document.getElementById("container"); container.innerHTML += points; } var oldPoint = null; //獲取滑鼠位置 function mousePosition(ev){ ev = ev || window.event; if(ev.pageX || ev.pageY){ return {x:ev.pageX, y:ev.pageY}; } var doc = document.documentElement, body = document.body; var pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); var pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); return {x:pageX, y:pageY}; } function recordPoint(ev){ var point = mousePosition(ev); if(oldPoint != null){ line(oldPoint.x, oldPoint.y, point.x, point.y); } oldPoint = point; } window.onload=function(){ var container=document.getElementById("container"); container.onclick=function(ev){ var ev=window.event||ev; recordPoint(ev); } } </script> </head> <body> <div id="container"> </div> </body> </html>
上面的程式碼實現了我們的要求,能夠實現點選指定區域的兩點繪製直線的效果。
相關文章
- JavaScript WebGL 繪製一條直線JavaScriptWeb
- SVG使用滑鼠點選繪製折線效果SVG
- SVG 繪製直線SVG
- canvas繪製直線Canvas
- 中國地圖繪製-點選事件地圖事件
- 計算兩條直線的交點
- SVG繪製直線簡單介紹SVG
- 繪製不規則圖形並響應點選事件事件
- JavaScript 點選複製選中文字程式碼例項JavaScript
- SVG繪製1px直線模糊問題SVG
- canvas繪製帶有漸變效果的直線Canvas
- JavaScript繪製sin正弦函式曲線JavaScript函式
- JavaScript 繪製sin正弦函式曲線JavaScript函式
- 使用html5實現的繪製直線效果HTML
- qt之點的繪製示例demoQT
- JS如何實現點選複製功能,JS點選複製文字JS
- 百度地圖開發-繪製點線提示框 07地圖
- AutoCAD快速入門(三):捕捉柵格繪製直線
- html 點選複製功能HTML
- Python matplotlib繪製散點圖Python
- 資料流圖的繪製要點
- Unity3d 繪製並獲取通過任意點的曲線Unity3D
- 轉:python使用opencv(cv2)在影像上繪製點線等PythonOpenCV
- 使用joinjs繪製流程圖(七)-實戰-繪製流程圖+節點設定樣式+節點新增事件JS流程圖事件
- javascript保留小數點後兩位JavaScript
- Matplotlib直方圖繪製技巧直方圖
- JS實現滑鼠點選愛心&繪製多邊形&每日一言功能JS
- 點選兩次返回退出程式
- JavaScript 點選按鈕返回底部JavaScript
- javascript點選燃放煙火效果JavaScript
- canvas 繪製線條Canvas
- Android測量佈局繪製的起點Android
- JavaScript浮點數保留兩位小數JavaScript
- mui 點選長按複製文字UI
- ArcGIS API for JavaScript根據兩個點座標在地圖上畫線APIJavaScript地圖
- javascript 點選回車相當於點選按鈕程式碼例項JavaScript
- mui退出軟體點選兩次提示UI
- 【JavaScript學習筆記】點選消失JavaScript筆記