用C語言畫一個圓
一、概念說明
1.1圓
在一個平面內(nèi),圍繞一個點(diǎn)并以一定長度為距離旋轉(zhuǎn)一周所形成的封閉曲線叫做圓(Circle)。
圓的表達(dá)式:(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

三、源碼實(shí)現(xiàn)(+注釋)
#include<stdio.h>
#include<stdlib.h>
#include<math.h> //定義該數(shù)學(xué)函數(shù)庫 因?yàn)橐玫絪qrt函數(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); //因?yàn)槠聊坏男芯啻笥诹芯?,不進(jìn)行調(diào)節(jié)顯示出來的將是橢圓
for(x = 1;x < 30-m; x++)
printf(" "); //圖形左側(cè)空白控制
printf("*"); //左半圓
for( ;x < 30+m; x++)
printf(" ");//圖形空心部分控制
printf("*\n");//圓的右側(cè)
}
}
四、輸出結(jié)果圖示

五、簡要解釋
1.實(shí)現(xiàn)關(guān)鍵
關(guān)鍵在于在屏幕上用“ * “ 畫一個空心的圓。
我們輸出圓可利用圖形的左右對稱性。 根據(jù)圓的方程:
x * x + y * y = r * r 可以計算出圓上每一點(diǎn)行和列的對應(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é)屏幕縱橫比 ? 因?yàn)樵陔娔X上,一般都是行距大于列距,例如可以聯(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)文章
C++?primer超詳細(xì)講解關(guān)聯(lián)容器
兩個主要的關(guān)聯(lián)容器為map和set,map中元素是一些關(guān)鍵字—值對,關(guān)鍵字起索引的作用,值則表示與索引相關(guān)聯(lián)的數(shù)據(jù)。set中每個元素只包含一個關(guān)鍵字,set支持高效的關(guān)鍵字查詢操作——檢查一個給定關(guān)鍵字是否在set中2022-07-07
使用C語言實(shí)例描述程序中的內(nèi)聚和耦合問題
這篇文章主要介紹了用C語言實(shí)例描述程序中的內(nèi)聚和耦合,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-08-08

