日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

三角函数对应在平面坐标上画圆

發(fā)布時(shí)間:2024/1/8 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三角函数对应在平面坐标上画圆 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

1、圓半徑(r)為 : 1

2、圓半徑(r)為 : r

3、例程


????????三角函數(shù)(Trigonometric Functions)是基本初等函數(shù)之一,是以角度(數(shù)學(xué)上最常用弧度制,下同)為自變量,角度對(duì)應(yīng)任意角終邊與單位圓交點(diǎn)坐標(biāo)或其比值為因變量的函數(shù)。

????????三角函數(shù)將直角三角形的內(nèi)角和它的兩個(gè)邊的比值相關(guān)聯(lián),也可以等價(jià)地用與單位圓有關(guān)的各種線段的長(zhǎng)度來(lái)定義。三角函數(shù)在研究三角形和圓等幾何形狀的性質(zhì)時(shí)有重要作用,也是研究周期性現(xiàn)象的基礎(chǔ)數(shù)學(xué)工具。

1、圓半徑(r)為 : 1

????????在屏幕上繪制圓時(shí),一般情況是在對(duì)應(yīng)的 XY 點(diǎn)進(jìn)行點(diǎn)的繪制,在 “ 圖1 ” 中我們可以看出在平面坐標(biāo)系中的 xy 坐標(biāo)的關(guān)系式為:y = sinθ 與?x = cosθ,通過(guò)該關(guān)系式我們可以改變??角度值?(θ) 來(lái)確定對(duì)應(yīng)的?xy 坐標(biāo),然后通過(guò)對(duì)應(yīng)的關(guān)系把平面坐標(biāo)上的 xy 轉(zhuǎn)化成屏幕上的 XY 點(diǎn)即可完成圓的繪制。

????????注意:角度值需要換成正弦、余弦值,所以最后的關(guān)系式變?yōu)?#xff1a;?y = sin(θ*3.14/180) ?與 ?x = cos(θ*3.14/180)??

?圖1

? ? ? ? 對(duì)應(yīng)的三角函數(shù)表格:

2、圓半徑(r)為 : r

? ? ? ? 上面的平面坐標(biāo)關(guān)系式是基于 半徑(r) 為 1 時(shí)的關(guān)系式,正常情況下我們的半徑是變化的由此上面的關(guān)系式則需要乘以?半徑(r) ,如 “ 圖2 ” 所示。我們可以看出在平面坐標(biāo)系中的 xy 坐標(biāo)的關(guān)系式為: y = sinθ?* r 與? x = cosθ * r )。通過(guò)該關(guān)系式我們可以改變??角度值?(θ) 來(lái)確定對(duì)應(yīng)的?xy 坐標(biāo),然后通過(guò)對(duì)應(yīng)的關(guān)系把平面坐標(biāo)上的 xy 轉(zhuǎn)化成屏幕上的 XY 點(diǎn)即可完成圓的繪制。

????????注意:角度值需要換成正弦、余弦值,所以最后的關(guān)系式變?yōu)?#xff1a;?y = sin(θ*3.14/180)*r??與 ?x = cos(θ*3.14/180)*r ”?

?圖2

3、例程

????????Bresenham畫(huà)圓算法也稱(chēng)為中點(diǎn)畫(huà)圓算法,與Bresenham 直線算法一樣,其基本的方法是利用判別變量來(lái)判斷選擇最近的像素點(diǎn),判別變量的數(shù)值僅僅用一些加、減和移位運(yùn)算就可以計(jì)算出來(lái)。該算法巧妙的利用了圓的八對(duì)稱(chēng)性,只計(jì)算出一個(gè)八分周上的點(diǎn),其余的七個(gè)點(diǎn)利用對(duì)稱(chēng)性即可得出。

#define LCD_Width 128 #define LCD_Height 64/*** @breif 畫(huà)圓函數(shù)* @param x1,x2 —— 圓心坐標(biāo)* @param r —— 半徑* @retval none*/ void LCD_Draw_ColorCircle(uint16_t x, uint16_t y, uint16_t r) {/* Bresenham畫(huà)圓算法 */int16_t a = 0, b = r;int16_t d = 3 - (r << 1); //算法決策參數(shù)/* 如果圓在屏幕可見(jiàn)區(qū)域外,直接退出 */if (x - r < 0 || x + r > LCD_Width || y - r < 0 || y + r > LCD_Height) return;/* 開(kāi)始畫(huà)圓 */while(a <= b){LCD_Draw_ColorPoint(x - b, y - a);//調(diào)用畫(huà)點(diǎn)函數(shù)LCD_Draw_ColorPoint(x + b, y - a);//調(diào)用畫(huà)點(diǎn)函數(shù)LCD_Draw_ColorPoint(x - a, y + b);//調(diào)用畫(huà)點(diǎn)函數(shù)LCD_Draw_ColorPoint(x - b, y - a);//調(diào)用畫(huà)點(diǎn)函數(shù)LCD_Draw_ColorPoint(x - a, y - b);//調(diào)用畫(huà)點(diǎn)函數(shù)LCD_Draw_ColorPoint(x + b, y + a);//調(diào)用畫(huà)點(diǎn)函數(shù)LCD_Draw_ColorPoint(x + a, y - b);//調(diào)用畫(huà)點(diǎn)函數(shù)LCD_Draw_ColorPoint(x + a, y + b);//調(diào)用畫(huà)點(diǎn)函數(shù)LCD_Draw_ColorPoint(x - b, y + a);//調(diào)用畫(huà)點(diǎn)函數(shù)a++;if(d < 0)d += 4 * a + 6;else{d += 10 + 4 * (a - b);b--;}LCD_Draw_ColorPoint(x + a, y + b);//調(diào)用畫(huà)點(diǎn)函數(shù)} }

總結(jié)

以上是生活随笔為你收集整理的三角函数对应在平面坐标上画圆的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。