我在學習Unity3d +一些基本的數學知識,我忘記了通過搞亂。
我現在正在做什麼的繼承人..數學編程。在拋物線上獲取角度
正如你可能會說這種形狀的兩側形成拋物線。 它們是從中心向外的距離爲基圓半徑+(該圖像中0.05)的平方的高度*由恆定
的代碼生成,這是非常簡單..
for (int changer = 1; changer > -2; changer-=2) {
Vector3 newPos = new Vector3(
transform.position.x
,transform.position.y + currentheight*changer
,transform.position.z - RadiusAtZero -(Mathf.Pow(currentheight,2)*CurveMultiplier)
);
var newFleck = Instantiate(Fleck, newPos, Quaternion.identity)as GameObject;
newFleck.transform.RotateAround(transform.position,Vector3.up,angle*changer);
FleckList.Add(newFleck);
}
順便說一句的用於循環和'換器'反映了一切,所以「當前高度」實際上就是距離拋物線中心線的距離。
無論如何,我想使立方體(或稱爲它們的斑點)成角度,以便它們與我製作的拋物線相吻合。
我需要確定在特定點上拋物線切線的角度。
我發現this
找到切線Y = X^2 -3在(1,-2),我們可以同時解決 Y = X^2 -3和y + 2 = M( x-1)並設置判別等於零
但我不知道如何實現這一點。另外我認爲我的'CurveMultiplier'常數使得我的拋物線方程與那個不同。
有人可以寫一些代碼來確定角度嗎? (也可以解釋一下)
更新。 這裏是固定版本使用方程的導數。 (另外我已經從盒子變成四面體和其他一些表面的東西)
該鏈接指向一種找到切線而不使用微積分的方法。但在這種情況下,爲什麼不使用拋物線函數的導數呢?導數'y'= 2 * x'給出了'x'處的斜率。 – lurker
Aaaahh什麼是衍生物!!? SOZ。你能解釋一下嗎?最後的撇號是什麼? –
對不起,我不確定你是否熟悉微積分。導數是給定點上函數的無窮小變化率。這與當時函數的斜率是一樣的。 「撇號」是表示「y = f(x)」(寫爲「y''或」f'(x)「或」dy/dx「等)的函數的導數的一種表示法。給定'x'或'f'(x)'處的'y''的值是該點處'f(x)'的斜率。 – lurker