dcomplex.cpp
来自「一个非常全的vc编程的原程序代码是关于图像处理的!」· C++ 代码 · 共 82 行
CPP
82 行
///////////////////////////////////////////////////////////
//// DComplex.cpp ///////////////////////////////////////
///////////////////////////////////////////////////////////
#include "stdafx.h"
#include "math.h"
#include "DComplex.h"
DComplex DComplex::operator=(DComplex& c)
{
x = c.x;
y = c.y;
return c;
}
DComplex operator+(DComplex& c1, DComplex& c2)
{
DComplex rsl;
rsl.x = c1.x+c2.x;
rsl.y = c1.y+c2.y;
return rsl;
}
DComplex operator-(DComplex& c1, DComplex&c2)
{
DComplex rsl;
rsl.x = c1.x-c2.x;
rsl.y = c1.y-c2.y;
return rsl;
}
DComplex operator*(DComplex& c1, DComplex& c2)
{
DComplex rsl;
rsl.x = c1.x*c2.x-c1.y*c2.y;
rsl.y = c1.y*c2.x+c1.x*c2.y;
return rsl;
}
DComplex operator/(DComplex& c1, DComplex& c2)
{
DComplex rsl = c1*Conjunction(c2);
double m = Abs(c2)*Abs(c2);
rsl.x /= (double)m;
rsl.y /= (double)m;
return rsl;
}
DComplex Conjunction(DComplex& c)
{
DComplex rsl;
rsl.x = c.x;
rsl.y = -c.y;
return rsl;
}
double Abs(DComplex& c)
{
return sqrt((double)c.x*c.x+c.y*c.y);
}
DComplex Polar(double magnitude, double angle)
{
DComplex rsl;
rsl.x = magnitude*cos(angle);
rsl.y = magnitude*sin(angle);
return rsl;
}
BYTE LimitTrunc(DComplex& c, int RLimit, int LLimit, int mode)
{
double d = mode ? Abs(c) : c.x;
int i = (int)d;
if (d-i>=0.5) i++;
else if (d-i<-0.5) i--;
if (i<LLimit) i = LLimit;
if (i>RLimit) i = RLimit;
return (BYTE)i;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?