2绘制两种图形(绘制余弦曲线和直线,绘制余弦曲线和正弦曲线)

(1)绘制余弦曲线和直线

/*
绘制余弦曲线和直线 
在屏幕上显示0~360度的cos(x)曲线与直线f(x)=45*y+31的迭加图形。
其中cos(x)图形用"*"表示,f(x)用"+"表示,在两个图形相交的点上则用f(x)图形的符号。
*问题分析与算法设计
本题可以在余弦曲线输出的基础上进行修改。
图形迭加的关键是要在分别计算出同一行中两个图形的列方向点坐标后,正确判断相互的位置关系。
为此,可以先判断图形的交点,再分别控制打印两个不同的图形。 
补充:
  余弦曲线纵坐标[-1,1], 扩大余弦曲线10 倍
*/
#include
#include
using namespace std; 
int main()
{
	double y;//屏幕行方向坐标
	int x,m,n;
	for(y=1;y>=-1;y-=0.1) /*y为行方向,值从1到-1,步长为0.1*/
	{
	   m=acos(y)*10; /*m: cos(x)曲线上y点对应的屏幕列坐标,计算出y对应的弧度m,乘以10为图形放大倍数*/
	   n=45*y+31;/*n: 直线上y点对应的列坐标*/
	   for(x=0;x<=62;x++) /*x: 屏幕列方向坐标*/
		   if(x==m&&x==n) cout<<"+"; /*直线与cos(x)相交时打印"+"*/
	   	      else if(x==n) cout<<"+"; /*打印不相交时的直线图形*/
		         else if(x==m||x==62-m) cout<<"*"; /*打印不相交时的cos(x)图形*/
		            else cout<<" "; /*其它情况打印空格*/
	
     cout<


 

(2)绘制余弦曲线和正弦曲线

/*
绘制余弦曲线和正弦曲线
在屏幕上显示0~360度的cos(x)曲线与sin(x)曲线的迭加图形。
其中cos(x)图形用"*"表示,sin(x)用"+"表示,在两个图形相交的点上则用sin(x)图形的符号。
*问题分析与算法设计
图形迭加的关键是要在分别计算出同一行中两个图形的列方向点坐标后,正确判断相互的位置关系。
为此,可以先判断图形的交点,再分别控制打印两个不同的图形。 
补充: 
  余弦曲线和正弦曲线对称轴不同,所以把此图形分为上半图形和下半图形。
  在上半图形中余弦曲线对应x=31对称,正弦曲线对应x=15对称
  在下半图形中余弦曲线对应x=31对称,正弦曲线对应x=47对称
  注意下半图形中去掉y=0点,从0-0.1=-0.1开始,否则图形不连续
*/
#include
#include
using namespace std; 
int main()
{
	double y;//屏幕行方向坐标
	int x,m,n;
	//上半图形输出
	for(y=1;y>=0;y-=0.1) /*y为行方向,值从1到0,步长为0.1*/
	{
	   m=acos(y)*10; /*m: cos(x)曲线上y点对应的屏幕列坐标,计算出y对应的弧度m,乘以10为图形放大倍数*/
	   n=3.14159*10-asin(y)*10;/*n: sin(x)曲线上y点对应的屏幕列坐标,计算出y对应的弧度n*/
	   for(x=0;x<=62;x++) /*x: 屏幕列方向坐标*/
		   if(x==m&&x==n) cout<<"+"; /*sin(x)与cos(x)相交时打印"+"*/
	   	      else if(x==n||x==31-n) cout<<"+"; /*打印不相交时的sin(x)图形*/
		         else if(x==m||x==62-m) cout<<"*"; /*打印不相交时的cos(x)图形*/
		            else cout<<" "; /*其它情况打印空格*/	
     cout<=-1;y-=0.1) /*y为行方向,值从-0.1到-1,步长为0.1*/
	{
	   m=acos(y)*10; /*m: cos(x)曲线上y点对应的屏幕列坐标,计算出y对应的弧度m,乘以10为图形放大倍数*/
	   n=3.14159*10-asin(y)*10;/*n: sin(x)曲线上y点对应的屏幕列坐标,计算出y对应的弧度n*/
	   for(x=0;x<=62;x++) /*x: 屏幕列方向坐标*/
		   if(x==m&&x==n) cout<<"+"; /*sin(x)与cos(x)相交时打印"+"*/
	   	      else if(x==n||x==n+2*(47-n)) cout<<"+"; /*打印不相交时的sin(x)图形*/
		         else if(x==m||x==62-m) cout<<"*"; /*打印不相交时的cos(x)图形*/
		            else cout<<" "; /*其它情况打印空格*/	
     cout<


你可能感兴趣的:(C++程序设计--原创+转载)