当前位置:首页 » 编程语言 » c语言靠自身能绘制图形吗
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言靠自身能绘制图形吗

发布时间: 2022-06-10 22:35:51

‘壹’ 高手进:如何在WINDOWS下用c语言编写图形函数

1、图形编程都是用的纯C函数库,
比如Windows的GDI,还有DirectX,以及开源的OpenGL。这些都是纯C库,也就是说会C语言就能开发图形界面和游戏了。C++当然也可以调用这些函数库,但不是必要的。
2、学GDI的话最好的书是《Windows程序设计.chm》这个文档,这东西网上到处都有。
学OpenGL的话,有个网站Nehe有完整的教学。人翻译了这个教程的中文版,google
“Nehe
opengl”
就能找到了。

‘贰’ c语言如何给自己写的程序加上图形界面

标题、背景和前景颜色、窗口大小等等这些可以用API函数实现

#include<windows.h>//加入头文件就可调用API函数

intmain()

{

HWNDhWnd=GetForegroundWindow();

HANDLEhandle=GetStdHandle(STD_OUTPUT_HANDLE);

SetWindowText(hWnd,"测试");//标题

SetConsoleTextAttribute(handle,FOREGROUND_GREEN|BACKGROUND_BLUE);//前景、背景颜色

return0;

}

VC6.0 能够在 XP 下很好的运行,无需进行额外的设置,但在 Win7、Win8 和 Win10 下,安装完成后还要修改兼容模式才可以。解决方法如下:

一、对于Win7和Win10,需要将VC6.0的兼容模式修改为WindowsXP SP3:

1、在 VC6.0 的快捷方式或开始菜单上单击鼠标右键,选择“属性”。

‘叁’ 如何用C语言画基本图形

下面举一个用drawpoly()函数画箭头的例子。#include
#include
int main()
{
int gdriver, gmode, i;
int arw[16]={200,102,300,102,300,107,330,<br/>100,300,93,300,98,200,98,200,102};
gdriver=DETECT;
initgraph(&gdriver, &gmode, "c:\\caic\\bgi");
setbkcolor(BLUE);
cleardevice();
setcolor(12); /*设置作图颜色*/
drawpoly(8, arw); /*画一箭头*/
getch();
closegraph();
return 0;
}
设定线型函数
在没有对线的特性进行设定之前,TURBO C 用其默认值,即一点宽的实线,但TURBO C 也提供了可以改变线型的函数。线型包括:宽度和形状。其中宽度只有两种选择:一点宽和三点宽。而线的形状则有五种。下面介绍有关线型的设置函数。
void far setlinestyle(intlinestyle,unsigned upattern,int thickness); 该函数用来设置线的有关信息,其中linestyle是线形状的规定,
见下表:
有关线的形状(linestyle)
━━━━━━━━━━━━━━━━━━━━━━━━━
符号常数 数值 含义
─────────────────────────
SOLID_LINE 0 实线
DOTTED_LINE 1 点线
CENTER_LINE 2 中心线
DASHED_LINE 3 点画线
USERBIT_LINE 4 用户定义线
━━━━━━━━━━━━━━━━━━━━━━━━━
有关线宽(thickness)
thickness是线的宽度,见下表。
━━━━━━━━━━━━━━━━━━━━━━━━━
符号常数 数值 含义
─────────────────────────
NORM_WIDTH 1 一点宽
THIC_WIDTH 3 三点宽
━━━━━━━━━━━━━━━━━━━━━━━━━
对于upattern,只有linestyle选USERBIT_LINE 时才有意义 (选其它线型,uppattern取0即可)。此进uppattern的16位二进制数的每一位代表一个象元,如果那位为1,则该象元打开,否则该象元关闭。 void far getlinesettings(struct linesettingstypefar *lineinfo);该函数将有关线的信息存放到由lineinfo 指向的结构中,表中linesettingstype的结构如下:
struct linesettingstype
{
int linestyle;
unsigned upattern;
int thickness;
}

‘肆’ 谁知道C语言怎么画图啊

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中最精彩的内容之一,希望你能很快享受它的乐趣。

‘伍’ 为什么C语言程序还可以画图啊

对,C语言中画图函数是和头文件graphics.h有关,因为图形也是由点所构成的,这个头文件里的图形只不过是已经编写好的常用的图形,如果要更加复杂的那得自己编写。这个头文件在TC里可以使用。

‘陆’ 用c语言可以编写图片吗

可以,C语言无所不能,别说一个编辑图片的软件,就是操作系统也不在话下

‘柒’ c语言编程如何实现图形化

这要看你所使用的系统平台,图形化编程与系统平台息息相关

对于C语言来说,有许多成熟的框架。比如Windows上可使用Windows的系统API,Linux下有GTK,嵌入式环境下有miniGUI等。

C语言是一门比较特殊的语言,虽然也是高级编程语言的一种,但是为了和其他语言区分开来,部分人也会将C语言称作中级语言,主要是因为C语言不是面向对象的语言,并且有指针这样的利器可以直接对底层以及硬件进行操作。

正是因为C语言不是面向对象的语言,在图形化这样更偏上层的应用中,一般会使用C++替代C语言,这样能极大的降低开发的工作量。
比如,Windows下可使用MFC,WPF也支持C++。Linux下一般用跨平台的QT(可在Windows/MAC等多种平台运行)。嵌入式环境下有嵌入式的QT版本。

‘捌’ 想用C语言编一个有图形界面的软件可以吗如何制作自己软件的图形界面的

当然可以了。
具体制作步骤不是一句两句能说清楚的
你去网络一下《C语言也能干大事》,有视频的教程,还不错
是用的C语言

‘玖’ C语言如何画图

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. ");

  • exit(EXIT_FAILURE);

printf("xres: %d ", info.xres);

printf("yres: %d ", info.yres);

printf("bits_per_pixel: %d ", 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. ");