desmos繪制旗幟教程
國(guó)慶將至,筆者翻了翻兩年之前國(guó)慶節(jié)發(fā)的視頻用函數(shù)編輯器制作的五星紅旗。祝祖國(guó)成立72周年!,于是考慮再畫(huà)一遍,并將具體的流程附上(相比以前的算法也有了優(yōu)化)
以原點(diǎn)建立坐標(biāo)系,旗幟四個(gè)頂點(diǎn)分別為:
(15,10),(-15,10),(-15,-10),(15,-10)
這時(shí)工作就已經(jīng)完成一半了,我們將這4點(diǎn)圍成的矩形渲染成(標(biāo)準(zhǔn)的)紅色即可
先是構(gòu)造矩形,對(duì)應(yīng)解析式為:
然后是調(diào)色:

將填充改為1,然后設(shè)一個(gè)參數(shù)a來(lái)代表顏色(參數(shù)不僅可以代表"滑塊",還能代表顏色哦)
其中rgb(255,0,0)也即標(biāo)準(zhǔn)的紅色(也即三原色之一,紅原色調(diào)滿,綠,藍(lán)調(diào)零)
ps:desmos自帶的那個(gè)紅色不是標(biāo)準(zhǔn)的紅色,因此需要額外引入?yún)?shù)a表示標(biāo)準(zhǔn)紅色
效果如下:

當(dāng)然,對(duì)于感興趣的網(wǎng)友,也可以考慮用"曲線方程"來(lái)表示矩形哦
考慮正方形經(jīng)過(guò)旋轉(zhuǎn)得
,然后經(jīng)過(guò)伸縮變換化為矩形:
這是邊界方程,因此矩形內(nèi)的"可行域"表示為:
然后調(diào)色步驟同上
ps:這個(gè)變換過(guò)程需要用到線性變換以及相關(guān)點(diǎn)法的知識(shí),之前寫(xiě)過(guò)專(zhuān)欄,供參考:

然后分別是5顆星的位置

圓心(-10,5),半徑為3
小五角星:
圓心由下及上分別為:(-5,1),(-3,3),(-3,6),(-5,8),半徑均為1
然后求出每個(gè)五角星頂點(diǎn)坐標(biāo)
這里相對(duì)之前的做法的優(yōu)化,是直接從圖中找到方位角后用參數(shù)方程,省略了聯(lián)立的步驟
以大五角星為例:
考慮圓的標(biāo)準(zhǔn)參數(shù)方程
于是得到5個(gè)頂點(diǎn)對(duì)應(yīng)的參數(shù)角:
于是,我們可以考慮引入多參數(shù)k,即

那么坐標(biāo)表示的就是5個(gè)點(diǎn)(因?yàn)榍懊嬖O(shè)置的k是多值的)
那么直接把這個(gè)點(diǎn)坐標(biāo)放入polygon()中即可得到5邊形

而這里有個(gè)問(wèn)題,這個(gè)多邊形表示的是正五邊形而非五角星?那么問(wèn)題究竟出在何處呢?
原因時(shí)desmos中的polygon()的括號(hào)中的點(diǎn)坐標(biāo)是默認(rèn)從左往右依次連起來(lái)的。我們回顧下畫(huà)五角星的步驟,是按同一旋轉(zhuǎn)方向連接相間的兩個(gè)點(diǎn)。因此,角的間隔應(yīng)該從改為
,這樣就可以了:

然后是調(diào)色,引入?yún)?shù)b表示黃色
標(biāo)準(zhǔn)的黃色代碼為:rgb(255,255,0)(也即三原色之一,紅、綠原色調(diào)滿,藍(lán)調(diào)零)
其余步驟同前
效果如下:


然后再到了4顆小星
這時(shí)的五角星頂點(diǎn)為例有嚴(yán)格的講究,其中(一個(gè)頂點(diǎn)為該圓心與大圓圓心的)連線與該小圓的交點(diǎn)(換而言之其中一個(gè)頂點(diǎn)正對(duì)大圓圓心)
以最底下的為例
其圓心與大圓圓心連線斜率為:
于是得到5個(gè)頂點(diǎn)對(duì)應(yīng)的參數(shù)角:
ps:這里同樣需要考慮到連線順序,因此也直接將參數(shù)角間隔改為
了
那么坐標(biāo)表示的就是5個(gè)點(diǎn)
ps:代入sin/cos時(shí)也經(jīng)過(guò)了誘導(dǎo)公式的少步化簡(jiǎn)
于是著顆小五角星也表示好了

其余的也是同理,方法是完全一樣的,這里就不多贅述了,直接貼上代碼:

最后把頂點(diǎn)、輪廓線、輔助圓等隱藏,最終保留以下簡(jiǎn)潔的公式欄:

最終效果如下圖:

省略坐標(biāo)軸即可得到標(biāo)準(zhǔn)的國(guó)旗繪圖:


最后,預(yù)祝各位國(guó)慶愉快,也愿祖國(guó)今后依舊欣欣向榮!