最容易理解的soma曲線!(初中生知識

初來乍到,直入正題
soma曲線是用多個圓弧將多個節(jié)點連起來的一種弧線,在我的世界區(qū)的粒子紅石音樂中常常出現(xiàn),因為是一個叫Soma的up主出的所以得名,這是soma3.0特效即soma曲線
我沒有電腦(本來有的,后來發(fā)生了一些不愉快的事情,作者畜種牲一枚,所以忍一下我的手繪吧

首先確定三個點

然后連起來(作為輔助線

做兩條邊的中垂線(中垂線上的點到邊上的距離相等,這樣可以保證兩個點都在弧上

在第一條邊的中垂線上選一個圓心,到藍點的距離為半徑作弧

然后連接圓形和第二個藍色的點,延長,和紅線相交(使兩弧線相接

交點作為另一個圓心畫弧

完成!

如果有添加的點就重復連線,做中垂線,做交點,畫弧線的步驟



一些問題和代碼中的一些思路
1.可以構建結構體來儲存橫縱坐標系的點坐標和表示線和線段,比如
2.Q:怎么算交點?
A:用點算出直線的解析式,然后通過方程,代入k,b算出x的值,再算y的值。(初中知識
3.Q:有時候算交點程序會報錯,查變量會發(fā)現(xiàn)有naN的值。
A:可能是不能存平行或者垂直的函數(shù)直線,也有可能出現(xiàn)中垂線和延長線平行的情況,無法計算出交點。
解決辦法:有一些特殊的數(shù)字表示直線(k=114514),在算交點之前先判斷k值是否相等。
如果在紅石音樂中遇到無法畫soma曲線連接的點,可以做拋物線連接,然后再使用soma曲線。
4.Q:如何算中垂線?
A:求中點坐標和
然后根據(jù)平面直角坐標系中算出k值,得出中垂線。
5.Q:為什么我的畫弧函數(shù)畫的是圓?
A:電腦中三角函數(shù)的參數(shù)不是角度,而是弧度,所以sin30°就得寫成 sin(30*PI/180)
6.Q:如何確定距離?
A:勾股定理(初中知識)

好了,就到這里結束了,抱歉我只能口嗨,不能給出示范程序,如果有問題可以在評論中討論,希望大家滿意和聽懂。