figure.cpp

来自「一个在电脑上运行的时钟」· C++ 代码 · 共 145 行

CPP
145
字号
/**
*	@shaunchyxion works
* 	2009.4
*/



#include "graphics.h"

//突起的二维条形图
void upbar(int x1,int y1,int x2,int y2)
{
	setlinestyle(0, 0, 0);
	setcolor(DARKGRAY);
	line(x1,y2,x2,y2);
	line(x2,y1,x2,y2);
	
	setcolor(LIGHTGRAY);
	line(x1,y1,x1,y2);
	line(x1,y1,x2,y1);
	
	setcolor(LIGHTGRAY);
	line(x1+1,y2-1,x2-1,y2-1);
	line(x2-1,y1+1,x2-1,y2-1);
	
	setcolor(WHITE);
	line(x1+1,y1+1,x1+1,y2-1);
	line(x1+1,y1+1,x2-1,y1+1);
	
	setcolor(LIGHTGRAY);
	rectangle(x1+2,y1+2,x2-2,y2-2);
	setfillstyle(SOLID_FILL,LIGHTGRAY);
	floodfill(x1+3,y1+3,LIGHTGRAY);
}
	
//凹陷的二维条形图
void dnbar(int x1, int y1, int x2, int y2)
{
	setlinestyle(0, 0, 0);
	setcolor(WHITE);
	line(x1,y2,x2,y2);
	line(x2,y1,x2,y2);
	
	setcolor(LIGHTGRAY);
	line(x1,y1,x1,y2);
	line(x1,y1,x2,y1);
	
	setcolor(LIGHTGRAY);
	line(x1+1,y2-1,x2-1,y2-1);
	line(x2-1,y1+1,x2-1,y2-1);
	
	setcolor(DARKGRAY);
	line(x1+1,y1+1,x1+1,y2-1);
	line(x1+1,y1+1,x2-1,y1+1);
	
	setcolor(LIGHTGRAY);
	rectangle(x1+2,y1+2,x2-2,y2-2);
	setfillstyle(1,LIGHTGRAY);
	floodfill(x1+3,y1+3,LIGHTGRAY);
}

//可填充的突起二维条形图
void upbarfill(int x1, int y1, int x2, int y2, int color)
{
	setlinestyle(0, 0, 0);
	setcolor(DARKGRAY);
	line(x1,y2,x2,y2);
	line(x2,y1,x2,y2);
	
	setcolor(LIGHTGRAY);
	line(x1,y1,x1,y2);
	line(x1,y1,x2,y1);
	
	setcolor(LIGHTGRAY);
	line(x1+1,y2-1,x2-1,y2-1);
	line(x2-1,y1+1,x2-1,y2-1);
	
	setcolor(WHITE);
	line(x1+1,y1+1,x1+1,y2-1);
	line(x1+1,y1+1,x2-1,y1+1);
	
	setcolor(color);
	rectangle(x1+2,y1+2,x2-2,y2-2);
	setfillstyle(SOLID_FILL, color);
	floodfill(x1+3,y1+3,color);
}

//可填充的凹陷二维条形图
void dnbarfill(int x1, int y1, int x2, int y2, int color)
{
	setlinestyle(0, 0, 0);
	setcolor(WHITE);
	line(x1,y2,x2,y2);
	line(x2,y1,x2,y2);
	
	setcolor(LIGHTGRAY);
	line(x1,y1,x1,y2);
	line(x1,y1,x2,y1);
	
	setcolor(LIGHTGRAY);
	line(x1+1,y2-1,x2-1,y2-1);
	line(x2-1,y1+1,x2-1,y2-1);
	
	setcolor(LIGHTGRAY);
	line(x1+1,y1+1,x1+1,y2-1);
	line(x1+1,y1+1,x2-1,y1+1);
	
	setcolor(color);
	rectangle(x1+2,y1+2,x2-2,y2-2);
	setfillstyle(SOLID_FILL ,color);
	floodfill(x1+3,y1+3,color);
}

//突起填充的圆形
void upCircleFill(int x, int y, int r,int color)
{
	setlinestyle(0, 0, 0);
	setcolor(DARKGRAY);
	circle(0,0,0);	//由于我无法获得画弧线的颜色,只好出此下策了
	//右半圆 
	arc(x, y, 225, 45, r);
	
	setcolor(LIGHTGRAY);
	circle(0,0,0);
	//左半圆
	arc(x, y, 45, 225, r);
	
	setcolor(LIGHTGRAY);
	circle(0,0,0);
	//右半圆,偏移一个像素
	arc(x, y,225, 45, r-1);
	
	setcolor(WHITE);
	circle(0,0,0);
	//左半圆,偏移一个像素
	arc(x, y, 45, 225, r-1);
	
	setcolor(LIGHTGRAY);
	//绘制圆形,收缩2个像素
	circle(x, y, r-2);
	
	//填充
	setfillstyle(SOLID_FILL,color);
	floodfill(x, y ,LIGHTGRAY);
}

⌨️ 快捷键说明

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