📄 tan.cpp
字号:
//正弦曲线Cos类
//Cos.cpp
//包含的头文件
#include "stdafx.h"
#include "Coordinate.h"
#include "Shape.h"
#include "tan.h"
#include <math.h>
//类实现
IMPLEMENT_SERIAL(Cos,Shape,1)
Cos::Cos(){
a=0.0;
b=0.0;
c=0.0;
d=0.0;
//expression.Format("y=%1.2lf*x*x*x+%1.2lf*x*x+%1.21f*x+%1.21f",a,b,c,d);
expression.Format("y=%1.2lf*tan(%1.2lf*x+%1.2lf)+%1.2lf",a,b,c,d);
}
Cos::Cos(double a,double b,double c,double d){
this->a=a;
this->b=b;
this->c=c;
this->d=d;
//expression.Format("y=%1.2lf*x*x*x+%1.2lf*x*x+%1.21f*x+%1.21f",a,b,c,d);
expression.Format("y=%1.2lf*tan(%1.2lf*x+%1.2lf)+%1.2lf",a,b,c,d);
}
Cos::~Cos(){
}
void Cos::drawShape(CDC *pDC,Coordinate co){ //画余弦函数
//利用逐步逼近法画曲线
double left=-200.0; //最左边的坐标的横轴坐标(实际坐标)为left
//则最右边的坐标的横轴坐标(实际坐标)为-left
double step=0.1; //设置逐步逼近的步长
int size=(int)(2*(-left)/step)+1; //计算出从最左边到最右边(以step为步长)的点数
double x=left,y;
CPoint * p=new CPoint[size];
//得出一系列点的视图坐标,并放于一CPoing数组里
for(int i=0;i<size;i++){
//y=a*x*x*x+b*x*x+c*x+d;
y=a*tan(b*x+c)+d; //y=f(x)
p[i]=co.getTrueAxis(x,y); //坐标转换
x+=step;
}
pDC->Polyline(p,size); //利用一系列存放在点数组的点画线
delete [] p;
}
void Cos::Serialize(CArchive &ar){ //串行化
Shape::Serialize(ar);
if(ar.IsStoring()){
//storing
ar <<a<<b<<c<<d;
}
else{
//loading
ar >>a>>b>>c>>d;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -