c语言的魅力,c语言的魅力
C语言的魅力,就是这么的无尽。一个程序编出的tc图形竟如此的美丽:
#include
#include
#include
#include
#include
float asp_ratio;
void Set_color(int colornum,int red0,int green0,int blue0);
void InitScr2()
{
union REGS In;
In.x.ax=0x13;
int86(0x10,&In,&In);
}
void InitScr()
{
int i,color1,color2,color3;
union REGS In;
In.x.ax=0x13;
int86(0x10,&In,&In);
for(i=0;i<256;i++)
{if(i<64)
{color1=i;color2=0;color3=0;}
else if(i>=64&&i<128)
{color2=i;color1=0;color3=0;}
else if(i>=128&&i<192)
{color3=i;color2=0;color1=0;}
else if(i>=192&&i<256)
{color1=i;color2=i;color3=i;}
Set_color(i,color1,color2,color3);
}
}
void RstScr()
{
union REGS In;
In.x.ax=0x03;
int86(0x10,&In,&In);
}
void PutPoint(int x,int y,char color)
{
char far *video_buffer;
video_buffer=(char far *)0xA0000000L;
*(x+y*320+video_buffer)=color;
}
void Rectangle(int x1,int y1,int x2,int y2,char color)
{
int i;
for(i=x1;i<=x2;i++){
PutPoint(i,y1,color);
PutPoint(i,y2,color);}
for(i=y1;i<=y2;i++){
PutPoint(x1,i,color);
PutPoint(x2,i,color);}
}
void Set_color(int colornum,int red0,int green0,int blue0)
{
outportb(0x3c8,colornum);
outportb(0x3c9,red0);
outportb(0x3c9,green0);
outportb(0x3c9,blue0);
}
void PreLine(int x1,int y1,int x2,int y2,char color)
{
int dx,dy,x_inc,y_inc,index,error=0;
unsigned char far *vb_start=0xA0000000L;
vb_start=vb_start+(x1+y1*320);
dx=x2-x1;
dy=y2-y1;
if(dx>=0)
{x_inc=1;}
else
{x_inc=-1;
dx=-dx;}
if(dy>=0)
{y_inc=320;}
else
{y_inc=-320;
dy=-dy;}
if(dx>dy){
for(index=0;index<=dx;index++){
*vb_start=color;
error+=dy;
if(error>dx){
error-=dx;
vb_start+=y_inc;
}
vb_start+=x_inc;
}
}
else{
for(index=0;index<=dy;index++){
*vb_start=color;
error+=dx;
if(error>dy){
error-=dy;
vb_start+=x_inc;
}
vb_start+=y_inc;
}
}
}
void Circle(int x,int y,int r,int color)
{
int x0,y0,x1,y1,index;
float cos_look[361];
float sin_look[361];
x0=y0=r/sqrt(2);
for(index=0;index<=360;index++)
{cos_look[index]=(float)cos((double)(index*3.14159/180));
sin_look[index]=(float)sin((double)(index*3.14159/180));
x1=x0*cos_look[index]-y0*sin_look[index];
y1=x0*sin_look[index]+y0*cos_look[index];
PutPoint(x+x1,y+y1,color);}
}
void BCircle(int x,int y,int r,int color)
{
int x0,y0,x1,y1,index;
float cos_look[361];
float sin_look[361];
x0=y0=r/sqrt(2);
for(index=0;index<=360;index++)
{cos_look[index]=(float)cos((double)(index*3.14159/180));
sin_look[index]=(float)sin((double)(index*3.14159/180));
x1=x0*cos_look[index]-y0*sin_look[index];
y1=x0*sin_look[index]+y0*cos_look[index];
PutPoint(x+x1,y+y1,color);
PutPoint(x+x1-1,y+y1+1,color);
PutPoint(x+x1,y+y1-1,color);
PutPoint(x+x1+1,y+y1,color);
PutPoint(x+x1,y+y1+1,color);
PutPoint(x+x1-1,y+y1-1,color);
PutPoint(x+x1+1,y+y1-1,color);
PutPoint(x+x1-1,y+y1+1,color);
PutPoint(x+x1-1,y+y1+1,color);}
}
void Plot_Circle(int x,int y,int x_center,int y_center,int color){
double startx,endx,x1,starty,endy,y1;
starty=y*asp_ratio;
endy=(y+1)*asp_ratio;
startx=x*asp_ratio;
endx=(x+1)*asp_ratio;
for(x1=startx;x1
PutPoint(x1+x_center,y+y_center,color);
PutPoint(x1+x_center,-y+y_center,color);
PutPoint(-x1+x_center,-y+y_center,color);
PutPoint(-x1+x_center,y+y_center,color);
PutPoint(x1+x_center,y+y_center-1,color);
PutPoint(x1+x_center,-y+y_center+1,color);
PutPoint(-x1+x_center,-y+y_center+1,color);
PutPoint(-x1+x_center,y+y_center-1,color);}
for(y1=starty;y1
PutPoint(y1+x_center,x+y_center,color);
PutPoint(y1+x_center,-x+y_center,color);
PutPoint(-y1+x_center,-x+y_center,color);
PutPoint(-y1+x_center,x+y_center,color);
PutPoint(y1+x_center,x+y_center+1,color);
PutPoint(y1+x_center,-x+y_center-1,color);
PutPoint(-y1+x_center,-x+y_center-1,color);
PutPoint(-y1+x_center,x+y_center+1,color);}
}
void Ellipse(int x_center,int y_center,int x_radius,int y_radius,int color){
register int x,y,delta;
asp_ratio=y_radius;
asp_ratio/=x_radius;
y=x_radius;
delta=3-(x_radius<<1);
for(x=0;x<=y;){
Plot_Circle(x,y,x_center,y_center,color);
if(delta<0) delta+=(x<<2)+6;
else{ delta+=((x-y)<<2)+10;y--;}
x++;}
}
void main()
{
int i,j,k,x,y,num,num1=0;
int x1,y1,x2,y2,color1=0,goout_color=0;
x=50;
y=145;
randomize();
InitScr();
for(i=0;i<=255;i++)
PutPoint(random(320),random(200),i);
getch();
RstScr();
InitScr();
for(j=0;j<=199;j++)
for(i=0;i<=256;i++)
PutPoint(i,j,i);
getch();
RstScr();
InitScr();
for(i=1;i<=4;i++){
k=0;
y+=10;
for(num=45;num>=0;num--){
for(j=0;j<=k;j++)
PutPoint(x+j,y,num+num1);
x=x+k;
//k++;
for(j=0;j<=k;j++)
PutPoint(x,y+j,num+num1);
y=y+k;
k++;
for(j=0;j<=k;j++)
PutPoint(x-j,y,num+num1);
x=x-k;
//k++;
for(j=0;j<=k;j++)
PutPoint(x,y-j,num+num1);
y=y-k;
k++;
}
x+=115;
num1+=64;
}
getch();
RstScr();
InitScr();
for(j=50;j<=114;j++)
for(i=64;i<128;i++)
if(i<=96)
PutPoint(i,j,160-i);
for(j=0;j<=8;j++)
{PreLine(55+j,42+j,55+j,106+j,70+j);
PreLine(55+j,42+j,87+j,42+j,66+j);}
getch();
RstScr();
InitScr();
Circle(60,100,30,1);
for(i=0;i<=29;i++)
BCircle(60,100,i,158-i);
Circle(150,100,64,1);
for(i=0;i<=64;i++)
BCircle(150,100,i,64-i);
getch();
RstScr();
InitScr();
for(i=35;i<=50;i++)
{Ellipse(150,100,i+50,i+50,192-i);
Ellipse(150,100,51-i,51-i,105+i);}
for(i=20;i<=35;i++)
Ellipse(150,100,i+50,i+50,120+i);
getch();
RstScr();
InitScr2();
x1=y1=0;
x2=319;
y2=199;
while(!kbhit()){
color1++;
x2=319;
y2=199;
x1=y1=0;
if(color1>=256) color1=0;
delay(30);
for(i=100;i>=0;i--)
Rectangle(x1++,y1++,x2--,y2--,i+color1);
}
getch();
RstScr();
InitScr();
x1=y1=0;
x2=319;
y2=199;
while(!kbhit()){
color1++;
goout_color++;
x2=319;
y2=199;
x1=y1=0;
if(color1>=256) color1=0;
delay(30);
if(goout_color<500)
for(i=100;i>=0;i--)
Rectangle(x1++,y1++,x2--,y2--,i+color1);
else if(goout_color>=500&&goout_color<1000)
for(i=100;i>=0;i--)
Rectangle(x1++,y1++,x2--,y2--,i+color1);
if(goout_color==1000) goout_color=0;
}
for(i=18;i<50;i++)
Rectangle(x1--,y1--,x2++,y2++,i);
getch();
RstScr();
}
c语言的魅力,c语言的魅力相关推荐
- 第05章 Go语言函数(Go语言func)
函数是组织好的.可重复使用的.用来实现单一或相关联功能的代码段,其可以提高应用的模块性和代码的重复利用率. Go 语言支持普通函数.匿名函数和闭包,从设计上对函数进行了优化和改进,让函数使用起来更加方 ...
- mysql设置语言变量_Mysql语言之数据操作语言
DML语言:数据操作语言 插入:insert 修改:update 删除:delete 一.插入语句: /* 语法: insert into 表名(列名...) values(值1,...); */ # ...
- c语言w加,C语言文件 w+与wb+区别
这是我今天碰到的问题,现在已经解决, 希望我的整理能够帮助到你们! w+以纯文本方式读写,而wb+是以二进制方式进行读写. mode说明: w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会 ...
- 为什么除了Go语言, 其他类C语言都是垃圾[翻译][转]
2019独角兽企业重金招聘Python工程师标准>>> 英文原文: http://www.syntax-k.de/projekte/go-review 原始翻译: http://ww ...
- r语言 断轴 画图_R语言基础画图/绘图/作图
R语言基础画图 R语言免费且开源,其强大和自由的画图功能,深受广大学生和可视化工作人员喜爱,这篇文章对如何使用R语言作基本的图形,如直方图,点图,饼状图以及箱线图进行简单介绍. 0 结构 每种图形构成 ...
- c语言 字母 八进制表示'/1011',C语言C语言第一课:C语言概述为什么学习C语言怎样学习C语言.DOC...
[摘要]C语言 第一课: C语言概述 为什么学习C语言 怎样学习C语言 参考资料 ----------------------------------------------------------- ...
- 学单片机需要多少C语言基础,C语言单片机编程教程
很多学员和朋友经常找我给他们推荐C语言的书,他们可能想和我当年一样,闷头大干一场,学个几个月的C语言,把C语言吃透,再开始单片机程序开发! 别!别!别! 大家千万别这么干,我当年自学了3个月的C语言, ...
- 为什么可以说Java语言是准动态语言?
什么是动态语言? 动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化.比如JavaScript便是一个典型的动态语言. 除此之外如Ruby.Python ...
- c语言课件 文件,C语言课件--文件.ppt
C语言课件--文件 例12-5 /*将字符串"apple", "grape", "pear" 写入到磁盘文件f12-5.txt中,然后再从该 ...
- python和c哪个适合入门-编程入门选什么语言好?C 语言还是Python ?为你解析
前面我分享过计算机行业已经成了学校选择排名第一,家长和学生都很看好计算机类专业.现在IT行业也越来越火爆,程序员越来越被人看好.面对相比同龄人高薪资的诱惑,人们很难不心动,即使秃头也值得! 那么问题来 ...
最新文章
- 组策略 从入门到精通 (七) 组策略的继承
- mysql5.5乱码问题_如何解决MySQL5.5的中文乱码问题
- UVa 10820 (打表、欧拉函数) Send a Table
- Ajax实现直链(点击量统计)
- 朱晔的互联网架构实践心得S1E7:三十种架构设计模式(上)
- .Net日志之nlog
- 利用Spring MVC 上传图片文件
- 中信银行就泄露池子个人信息致歉,网友:违法行为想靠道歉就完事?
- 7z001怎么解压在安卓手机上面_安卓zip文件压缩RAR解压手机下载-安卓zip文件压缩RAR解压v1.0最新版下载...
- elastic mapping not_analyzed 简单理解 + analysis-ik分词器安装
- word文档 目录 导航窗格 整理
- 阿里巴巴国际站全屏代码装修贸店铺装修平台国际站平台全屏代码装修方法教程视频教程
- 排序系列(代码c++版)
- 实验吧——天网管理系统
- 重启linux没有网络配置文件,Linux 网络配置 修改DNS配置文件/etc/resolv.conf后,重启网络,DNS配置丢失...
- CSS 字体大小 font-size属性
- 全网最简单的RFM模型制作方法,3岁小孩都能学会!
- 专访天冕科技许文彬:以超5000万用户为基础,构建完善的隐私计算数据应用生态
- c++ STL 容器
- LAMP—Mysql数据库