用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++四種強(qiáng)制類型轉(zhuǎn)換的總結(jié)
本篇文章是對C++中四種強(qiáng)制類型轉(zhuǎn)換進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
Qt實(shí)現(xiàn)SqlTableModel映射組件應(yīng)用小結(jié)
在Qt中提供了QSqlTableModel模型類,它為開發(fā)者提供了一種直觀的方式來與數(shù)據(jù)庫表格進(jìn)行交互,本文就來介紹一下Qt實(shí)現(xiàn)SqlTableModel映射組件應(yīng)用小結(jié),感興趣的可以了解一下2023-12-12
C++與C#互調(diào)dll的實(shí)現(xiàn)步驟
這篇文章主要介紹了C++與C#互調(diào)dll的實(shí)現(xiàn)步驟,dll動態(tài)鏈接庫的共享在一些大型項(xiàng)目中有一定的應(yīng)用價值,需要的朋友可以參考下2014-08-08
C語言實(shí)現(xiàn)可增容動態(tài)通訊錄詳細(xì)過程
這篇文章主要為大家介紹了C語言實(shí)現(xiàn)簡易通訊錄的完整流程,此通訊錄還可以增容,并且每個環(huán)節(jié)都有完整代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-05-05
使用c++實(shí)現(xiàn)OpenCV繪制旋轉(zhuǎn)矩形圖形
這篇文章主要給大家介紹了使用c++實(shí)現(xiàn)OpenCV繪制圖形旋轉(zhuǎn)矩形的方法案例,通過圖文及代碼形式進(jìn)行了詳細(xì)的描述,有需要的朋友可以參考下,希望可以有所幫助2021-08-08

