日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

用C語言畫一個圓_C 語言

作者:Code_流蘇 ? 更新時間: 2022-03-30 編程語言

一、概念說明

1.1圓

在一個平面內,圍繞一個點并以一定長度為距離旋轉一周所形成的封閉曲線叫做圓(Circle)

圓的表達式:(x - a)2 +(y - b)2 = r2
a=0,b=0的情況下: x2 + y2 = r2

1.2圓的圖樣

僅供參考理解:

在這里插入圖片描述

二、問題呈現

1.問題描述

Problem Description

在屏幕上用字符“*”畫一個空心的圓。

2.輸入輸出

Input

Output

用字符“*”顯示一個空心的圓

3.測試樣例

Sample Input

Sample Output

在這里插入圖片描述

三、源碼實現(+注釋)

#include<stdio.h>
#include<stdlib.h>
#include<math.h>  //定義該數學函數庫 因為要用到sqrt函數

int main(){
	double y;
	int x,m;
	for(y = 10;y >= -10; y--){
		//圓的半徑為10
		//計算y對應的列坐標m,2.03是屏幕縱橫比調節系數
		m = 2.03 * sqrt(100-y*y);	//因為屏幕的行距大于列距,不進行調節顯示出來的將是橢圓
		for(x = 1;x < 30-m; x++)
			printf(" ");  //圖形左側空白控制
		printf("*"); //左半圓
		for( ;x < 30+m; x++)
			printf(" ");//圖形空心部分控制
		printf("*\n");//圓的右側
	}
}

四、輸出結果圖示

在這里插入圖片描述

五、簡要解釋

1.實現關鍵

關鍵在于在屏幕上用“ * “ 畫一個空心的圓

我們輸出圓可利用圖形的左右對稱性。 根據圓的方程:

x * x + y * y = r * r 可以計算出圓上每一點行和列的對應關系。

2.小說明

? m = 2.03 * sqrt(100 - y * y);

① y就是圓的方程中的y

② y對應的列坐標m

③2.03是屏幕縱橫比調節系數

為什么要調節屏幕縱橫比 ? 因為在電腦上,一般都是行距大于列距,例如可以聯系常見的屏幕分辨率1920x1080 1920>1080來理解。

④sqrt是math數學函數庫中的開方函數

總結

原文鏈接:https://blog.csdn.net/qq_51646682/article/details/122524507

欄目分類
最近更新