JavaScript 數學曲線—連鎖螺線
阿新 • • 發佈:2021-11-01
引子
繼等角螺線,接著嘗試連鎖螺線。
簡介
在 阿基米德螺線 中提到的通用的公式,當 c = -2 時,就是連鎖螺線,又稱為 Lituus 曲線。Roger Cotes 在他的著作 《Harmonia Mensurarum》(1722) 中對該曲線進行了描述。Maclaurin 在 1722 年為曲線命名。
在極座標系中公式描述:
公式說明:
- r :徑向距離。
- a :常數。
- θ :極角。
繪製
用 canvas 繪製曲線,canvas 的座標系是笛卡爾座標系,需要做一個轉換。
由上面的圖可知取一個點有下面的數學轉換關係:
x = rcos(θ) y = rsin(θ) θ = arctan(y/x)
結合極座標系公式可得:
這是示例,繪製主要邏輯程式碼:
function draw() { let a = 100, angle = 0.1; let x = 0, y = 0, points = []; const acceleration = 0.1, circleNum = 20; while (angle <= circleNum * 2 * Math.PI) { const angleSqrt = Math.sqrt(angle); x = (a / angleSqrt) * Math.cos(angle); y = (a / angleSqrt) * Math.sin(angle); points.push([x, y]); angle = angle + acceleration; } // 實現把點繪製成線的方法 line({ points: points}); }