方法1
/*绘制y=x*x的图形与圆的图形叠加显示---方法1
在屏幕上用"*"画一个空心的圆,用"+"画一个开口向上的曲线y=x*x
实现函数y=x*x的图形与圆的图形叠加显示
*问题分析与算法设计
(1)打印圆可利用图形的左右对称性。根据圆的方程:
R*R=X*X+Y*Y X=sqrt(R*R-Y*Y)
R=10 以X=30,Y=0为圆中心,以X=30为圆纵对称轴,以Y=0为圆横对称轴
R*R=(X-30)*(X-30)+Y*Y 得到两个坐标 X=30-sqrt(R*R-Y*Y) X=30+sqrt(R*R-Y*Y)
可以算出圆上每一点行和列的对应关系。
(2)打印y=x*x的曲线可利用左右对称性。为了和上述圆一致,让曲线的对称轴为X=30
曲线改写为y=(x-30)*(x-30) x=30-sqrt(y) x=30+sqrt(y)
(3)叠加图形只出现在上半部分,下半部分就是图的下半部分。
*/
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double y;
int x,m,n;
for(y=10;y>=-10;y=y-1)
{
m=2.5*sqrt(100-y*y); /*计算圆形行y对应的列坐标m,2.5是屏幕纵横比调节系数因为屏幕的
行距大于列距,不进行调节显示出来的将是椭圆*/
n=2.5*sqrt(y);//计算曲线y=x*x的列坐标n,同样扩大2.5倍
//对于y先算出m值,对应此y画出来的点的横坐标位置为30-m,纵坐标为y,即30-m之