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
- 點到直線的距離,垂足,對稱點,兩點所成的直線方程
- canvas繪製直線Canvas
- SVG 繪製直線SVG
- 計算兩條直線的交點
- 中國地圖繪製-點選事件地圖事件
- 在Visio中如何繪製直線
- SVG繪製直線簡單介紹SVG
- JavaScript 點選複製選中文字程式碼例項JavaScript
- 繪製不規則圖形並響應點選事件事件
- Python matplotlib繪製散點圖Python
- canvas繪製帶有漸變效果的直線Canvas
- SVG繪製1px直線模糊問題SVG
- JS如何實現點選複製功能,JS點選複製文字JS
- qt之點的繪製示例demoQT
- C#繪製股票K線圖和量化交易買賣點C#
- AutoCAD快速入門(三):捕捉柵格繪製直線
- 轉:python使用opencv(cv2)在影像上繪製點線等PythonOpenCV
- 百度地圖開發-繪製點線提示框 07地圖
- 使用joinjs繪製流程圖(七)-實戰-繪製流程圖+節點設定樣式+節點新增事件JS流程圖事件
- Matplotlib直方圖繪製技巧直方圖
- JavaScript 點選按鈕返回底部JavaScript
- js點選複製內容JS
- Android測量佈局繪製的起點Android
- 線上點選諮詢
- JavaScript浮點數保留兩位小數JavaScript
- Origin2024如何繪製誤差棒圖?直觀看出每個資料點的誤差
- ArcGIS API for JavaScript根據兩個點座標在地圖上畫線APIJavaScript地圖
- JS實現滑鼠點選愛心&繪製多邊形&每日一言功能JS
- mui 點選長按複製文字UI
- [1]Python 中用 matplotlib 繪製熱點圖(heat map)Python
- 點選label執行兩次的bug
- AndroidStudio點選兩次返回鍵,退出APPAndroidAPP
- matplotlib的直方圖繪製(筆記)直方圖筆記
- JavaScript點選按鈕彈出層效果JavaScript
- JavaScript點選按鈕返回底部詳解JavaScript
- lvgl table的使用(重繪,事件,行選中,點選,蒙版)事件
- canvas 繪製線條Canvas
- 在點雲上計算兩點之間的測地線