canvas拋物線運動軌跡

2022-02-05 21:07:59 字數 1659 閱讀 8717

本來是想做乙個貝塞爾曲線運動軌跡的

公式太複雜了,懶得算,公式在最後

我先畫了乙個拋物線,我確定了兩個點,起點(0,0),終點(200,200)

用座標系可算出方程 y=-0.005x^2

現在找出終點的切線與x軸的交點,那個就是貝塞爾曲線的第二個引數,控制點

求出是(100,0)

現在重新繪製乙個動態曲線,給x=x+0.1

y就是函式方程了y=0.005x^2  (注意沒有負號了)

這樣我們新繪製的線條就能在原來的紅色線條上移動了

var oquadraticcurveto = document.getelementbyid("canvas");

var ocontext = oquadraticcurveto.getcontext("2d");

var x=2;

drawline();

function drawline()

function drawpoint(x,y)

//畫移動的線

function drawmivie()else

}drawpoint(0,0);

drawpoint(200,200);

//定位到起點

setinterval(function(),1);

下面是乙個改進版,小球沿著拋物線運動

//畫移動的線

function drawmivie()else

}//畫靜態元素,紅線和兩端

function drawstatic()

setinterval(function(),20);

公式先丟出來,萬一以後真的要做複雜的曲線呢。。

用下列一組資料點p(0,1) p(1,1) p(1,0) 作為特徵多邊形的頂點,構造一條貝齊爾曲線,寫出它的方程並作圖

n個資料點構成(n-1)次貝塞爾曲線,

三個資料點構成二次貝塞爾曲線,二次貝塞爾曲線引數方程

(1 - t)^2 p0

+ 2 t (1 - t) p1 + t^2 p2;

曲線起點p0,終點p2,但一般不過p1點.

代入座標後得到:

引數方程:

x = (1 - t)^2 * 0 + 2 t (1 -

t) * 1 + t^2 * 1 = 2 t (1 - t) + t^2,

y=(1 - t)^2 * 1 + 2 t (1 - t) * 1 + t^2 * 0 = (1 - t)^2 + 2 t (1 - t)

,消去引數 t 得到:

y = -1 + 2

sqrt[1 - x] + x.

css購物車 拋物線 運動

拋物線動畫的原理,就是用兩個元素,子元素會繼承父元素的運動,將父元素在橫向運動,子元素在縱向運動,子元素會形成一種雙向運動。而父元素在橫向上是勻速運動,子元素在縱向上是變速運動,可以使用貝塞爾曲線來定義運動,二者合成,就能出現乙個曲線運動。具體的曲線,跟選擇的貝塞爾函式有關,調整好,就可以形成拋物線...

js實現小球拋物線軌跡運動的兩種方式

js實現小球拋物軌跡運動的大致思路 1 用setinterval 方法,進行間隔性重新整理,更新小球位置,以實現動態效果 2 繪製小球和運動區域,運動區域可通過flex布局實現垂直居中 3 用物理公式s y 1 2 g t t,s x v x t來計算路徑 現確定v x 4m s,重新整理的時間間隔...

cad拋物線曲線lisp CAD能畫拋物線嗎?

方法一 1.在excel生成座標x,y列 x為分段值控制曲線精度,y為公式計算的對應值 2.假定excel中x數值在a列,y數值在b列,生成acad的pline繪圖資料,方法如下 1 在新的列單元 如c列 輸入公式 an bn n為資料的行號 按次辦法將an及bn單元格中的資料在cn單元格中形成 x...