c语言的blending(原创)

与世无争的帅哥 提交于 2020-03-08 06:58:28

 

#include "graphics.h"
#include 
"math.h"
#define STEP 1
#define MYCOLOR WHITE
#define DELAY 10000

void initGraph(){
    
int gmode,gdriver=DETECT;
    initgraph(
&gdriver, &gmode, "");
}


void blendingPoint(float x,float y,float path,int angle){
    
float i,stepX,stepY;
    angle 
= 360 - (angle%360);
    stepX 
= cos(angle*(M_PI/180.0))*STEP,stepY = sin(angle*(M_PI/180.0))*STEP;
    
/*printf("%d,%f,%f",angle,stepX,stepY);
    getch();
*/

    
for(i=0;i<path;i+=STEP)
    
{
        putpixel(x 
+= stepX,y += stepY,MYCOLOR);
        delay(DELAY);
        cleardevice();
    }

}

void blendingLineMove(float x,float y,float dx,float dy,float length,int angle)
{
    dx 
/= (angle/STEP);dy /= (angle/STEP);
    angle 
= 360 - (angle%360);
    
/*printf("%d,%f,%f",angle,dx,dy);
    printf("%f,%f",dx,dy);
    getch();
*/

    
while(angle < 360)
    
{
        cleardevice();
        line(x 
+= dx,y += dy,cos(angle*(M_PI/180.0))*length+x,sin(angle*(M_PI/180.0))*length+y);
        delay(DELAY);
        angle
+=STEP;
    }

}


void blendingLine(float x,float y,float length,int angle)
{
    blendingLineMove(x,y,
0,0,length,angle);
}


void blendingpoly(float poly[],float x,float y,float dx,float dy,int angle)
{
}


main()
{
    
float x,y,dx,dy,length,angle;
    x
=100;y=200;dx=300;dy=100;length=100;angle=90;
    initGraph();
    getch();
    blendingPoint(x,y,length,angle);
    
/*getch();*/
    blendingLineMove(x,y,dx,dy,length,angle);
    getch();
    closegraph();
}

 

void blendingpoly(float poly[],float x,float y,float dx,float dy,int angle)
{
    
float cosA,sinA;
    angle 
= 360 - (angle%360);
    angle 
/=STEP;
    cosA 
= cos(angle*(M_PI/180.0));
    sinA 
= sin(angle*(M_PI/180.0));
    x 
= x*cosA - y*sinA;
    y 
= x*sinA + y*cosA;
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!