代碼
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
for(double y=10;y>=-10;y-=1)
{
for(int i=0;i<10;i++) cout<<" ";
double x=2.5*(10-sqrt(100-y*y)),t;
for(t=0;t<x;t+=1) cout<<" ";
cout<<"*";
for(;t<20*2.5-x;t+=1) cout<<" ";
cout<<"*"<<endl;
}
return 0;
}
畫一個半徑為10的圓,原點在(10,0),這樣做是為了友善做對稱處理(我們隻需畫一側的半圓,另一側靠對稱映射出來),那麼由圓公式可得兩個x點位置,我們取左側的點,x=2.5 ∗ * ∗(10-sqrt(100- y ∗ y y*y y∗y)),乘上2.5是因為計算機螢幕行間距和列間距不等,需要個調整系數,如果不乘最後會變成橢圓,是以我們在處理對稱的時候也要注意乘這個調整系數,20*2.5-x
ps:for(int i=0;i<10;i++) cout<<" " ; 這段代碼可删,隻是為了讓結果與控制台對話框左側保持一定距離
結果
不加調整系數的結果

加調整系數的結果