c语言写画图程序

c语言写画图程序,第1张

#include<stdio.h>

#include<graphics.h>

main()

{

int gm,gd=DETECT

int a,T,X,R=100

scanf("%d",&a)

T=200,

X=a*T

initgraph(&gd,&gm,"")/*双引号戚悔卜内填bgi文件夹在你电脑中的目录,如在c:\tc\bgi,且c文件在高穗c:\tc\programfiles下,则填"..\\bgi"*/

circle(X,T,R)/前尺*R为半径*/

getch();

closegraph()

}

framebuffer(帧缓冲)。

帧虚洞谈的最低数量为24(人肉眼可见)(低于24则感觉到画面不流畅)。

显卡与帧的关系:由cpu调节其数据传输速率来输出其三基色的配比。

三基色:RGB(红绿蓝)。

在没有桌面和图形文件的系统界面,可以通过C语言的编程来实现在黑色背景上画图!

用下面的代码,在需要的地方(有注释)适当修改,就差碰能画出自己喜欢的图形!颤早

PS:同样要编译运行后才能出效果。

#include <stdio.h>

#include <sys/mman.h>

#include <fcntl.h>

#include <linux/fb.h>

#include <stdlib.h>

#define RGB888(r,g,b) ((r &0xff) <<16 | (g &0xff) <<8 | (b &0xff))

#define RGB565(r,g,b) ((r &0x1f) <<11 | (g &0x3f) <<5 | (b &0x1f))

int main()

{

int fd = open("/dev/fb0", O_RDWR)

if(fd <0){

perror("open err. \n")

exit(EXIT_FAILURE)

printf("xres: %d\n", info.xres)

printf("yres: %d\n", info.yres)

printf("bits_per_pixel: %d\n", info.bits_per_pixel)

size_t len = info.xres*info.yres*info.bits_per_pixel >>3

unsigned long* addr = NULL

addr = mmap(NULL, len, PROT_WRITE|PROT_READ, MAP_SHARED, fd, 0)

if(addr == (void*)-1){

perror("mmap err. \n")

Turbo C提供了非常丰富的图形函数, 所有图形函数的原型均在graphics. h中, 本节主要介绍图形模式的初始化、独立图形程序的建立、基本图形功能、图形窗口以及图形模式下的文本输出等函数。另外, 使用图形函数时要确保有显示器图形驱动程序*BGI, 同时将集成开发环境Options/Linker中的Graphics lib选为on, 只有这样才能保证正确使用图形函数。由于种类比较多,所以下面仅列举2个例子,抛砖引玉→碰租谨

1.点

void far putpixel(int x, int y, int color)

2.线

void far line(int x0, int y0, int x1, int y1)画一条从点(x0, y0)到(x1, y1)的直线。

void far lineto(int x, int y)画一作笑基从现行游标到点(x, y)的直线。

void far linerel(int dx, int dy)画一条从现行游标(x, y)到按相型盯对增量确定的点(x+dx, y+dy)的直线。

void far circle(int x, int y, int radius)以(x, y)为圆心, radius为半径, 画一个圆。

c语言的图形部分是很有意思的!也是c中最精彩的内容之一,希望你能很快享受它的乐趣!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12229002.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存