⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 math.c

📁 0-30v
💻 C
字号:
#include "reg52.h"
#include "math.h"
#define  uchar unsigned char
#define uint unsigned int

void draw(uchar x,uchar y);//画点函数   
void clear_xy(uchar x,uchar y);//清点函数  

/*画正弦波函数 */     
void sin_lcd(void)
{
    float x,y;
    for(x=0;x<128;x+=0.15)
    {
        draw(x,y=20*sin(x*1/4)+32);
    }
    for(x=0;x<128;x+=0.15)
    {
        clear_xy(x,y=20*sin(x*1/4)+32);
    }
}
/*画圆函数 */
void round(uchar x,uchar y,uchar r)
{
    float angle;
    uchar dx,dy;
    for(angle=0;angle<3.14/4;angle+=0.03)//0.03
    {
        dx=r*sin(angle);
        dy=r*cos(angle);
        draw(x+dx,y+dy);
        draw(x-dx,y+dy);
        draw(x+dx,y-dy);
        draw(x-dx,y-dy);
        draw(x+dy,y+dx);
        draw(x-dy,y+dx);
        draw(x+dy,y-dx);
        draw(x-dy,y-dx);
    }
}
/*画椭圆函数 */
void ellipsoid(uchar x,uchar y,uchar a,uchar b)
{
    float angle;
    uchar dx,dy;
    for(angle=0;angle<6.28;angle+=0.06)
    {
        dx=a*sin(angle);
        dy=b*cos(angle);
        draw(x+dx,y+dy);
        draw(x+dx,y-dy);
        draw(x-dx,y-dy);
        draw(x-dx,y+dy);
    }
}
/*抛物线 */
void parabalo(float x)
{
    for(;x<128;x+=0.4)
    draw(x,x*x/256);
}
/*对数 */
void fan(float x)
{
    for(;x<128;x+=0.2)
    draw(x,30*log10(x));
}
/**/
void nn(uchar x,uchar y,uchar R)
{
    float angle,x0,y0,r1=15,r2=5;
    for(angle=0;angle<2*3.14*3;angle+=0.03)
    {
        x0=(R-r1)*sin(angle)-r2*sin(R/r1*angle);
        y0=(R-r1)*cos(angle)+r2*cos(R/r1*angle);
        draw(x+x0,y+y0);
    }
}
/*
void beenline(float x,float y,float xe,float ye)
{
    float dx,k;
    k=(ye-y)/(xe-x);
    dx=(xe-x)/128;
    for(;x<=xe;x+=dx)
    {
        draw(x,k*x+y);
    }
}
*/
void  Lin(uchar x1,uchar y1,uchar x2,uchar y2)
{
    uint x=x1<<8,y=y1<<8;     //高8位为坐标值,低8位为积分累加器
    char dx=x2-x1,dy=y2-y1,mm,nn;

    while( abs(dx)<64 && abs(dy)<64 && dx*dy!=0 ) {dx*=6;dy*=6;} //调整插补速度	 //2

    while( (x>>8)!=x2 || (y>>8)!=y2)
    {
        draw(mm=x>>8,nn=y>>8);
        x+=dx;
        y+=dy;
    }

    draw(x>>8,y>>8);         //画终点
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -