用C語言畫一個圓
一、概念說明
1.1圓
在一個平面內(nèi),圍繞一個點并以一定長度為距離旋轉(zhuǎn)一周所形成的封閉曲線叫做圓(Circle)。
圓的表達式:(x - a)² +(y - b)² = r²
a=0,b=0的情況下: x² + y² = r²
1.2圓的圖樣
僅供參考理解:
二、問題呈現(xiàn)
1.問題描述
Problem Description:
在屏幕上用字符“*”畫一個空心的圓。
2.輸入輸出
Input
無
Output
用字符“*”顯示一個空心的圓
3.測試樣例
Sample Input
無
Sample Output
三、源碼實現(xiàn)(+注釋)
#include<stdio.h> #include<stdlib.h> #include<math.h> //定義該數(shù)學(xué)函數(shù)庫 因為要用到sqrt函數(shù) int main(){ double y; int x,m; for(y = 10;y >= -10; y--){ //圓的半徑為10 //計算y對應(yīng)的列坐標(biāo)m,2.03是屏幕縱橫比調(diào)節(jié)系數(shù) m = 2.03 * sqrt(100-y*y); //因為屏幕的行距大于列距,不進行調(diào)節(jié)顯示出來的將是橢圓 for(x = 1;x < 30-m; x++) printf(" "); //圖形左側(cè)空白控制 printf("*"); //左半圓 for( ;x < 30+m; x++) printf(" ");//圖形空心部分控制 printf("*\n");//圓的右側(cè) } }
四、輸出結(jié)果圖示
五、簡要解釋
1.實現(xiàn)關(guān)鍵
關(guān)鍵在于在屏幕上用“ * “ 畫一個空心的圓。
我們輸出圓可利用圖形的左右對稱性。 根據(jù)圓的方程:
x * x + y * y = r * r 可以計算出圓上每一點行和列的對應(yīng)關(guān)系。
2.小說明
? m = 2.03 * sqrt(100 - y * y);
① y就是圓的方程中的y
② y對應(yīng)的列坐標(biāo)m
③2.03是屏幕縱橫比調(diào)節(jié)系數(shù)
為什么要調(diào)節(jié)屏幕縱橫比 ? 因為在電腦上,一般都是行距大于列距,例如可以聯(lián)系常見的屏幕分辨率1920x1080 1920>1080來理解。
④sqrt是math數(shù)學(xué)函數(shù)庫中的開方函數(shù)
總結(jié)
到此這篇關(guān)于用C語言畫一個圓的文章就介紹到這了,更多相關(guān)C語言圓內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Qt實現(xiàn)SqlTableModel映射組件應(yīng)用小結(jié)
在Qt中提供了QSqlTableModel模型類,它為開發(fā)者提供了一種直觀的方式來與數(shù)據(jù)庫表格進行交互,本文就來介紹一下Qt實現(xiàn)SqlTableModel映射組件應(yīng)用小結(jié),感興趣的可以了解一下2023-12-12使用c++實現(xiàn)OpenCV繪制旋轉(zhuǎn)矩形圖形
這篇文章主要給大家介紹了使用c++實現(xiàn)OpenCV繪制圖形旋轉(zhuǎn)矩形的方法案例,通過圖文及代碼形式進行了詳細的描述,有需要的朋友可以參考下,希望可以有所幫助2021-08-08