b2c信息网

您现在的位置是:首页 > 热点事件 > 正文

热点事件

c源码画图移动(c语言控制图形移动代码)

hacker2022-07-01 02:49:27热点事件38
本文目录一览:1、用c语言api编程如何将文本或者数字放入某个图形中,并且二者可以一起移动

本文目录一览:

用c语言api编程 如何将文本或者数字放入某个图形中,并且二者可以一起移动

弄个static控件

在控件里画图,

移动只要移动控件就行了

static HWND hStatic;

..

case WM_CREATE:

hStatic = CreateWindow(_T("static"), _T("aa"), WS_CHILD | WS_VISIBLE | WS_BORDER | SS_CENTER,

100, 100, 80, 80, hWnd, (HMENU)1, hInst, 0);

InvalidateRect(hStatic, NULL, 0);

break;

case WM_KEYDOWN:

MoveWindow(hStatic, 0, 0, 80, 80, 1);

//InvalidateRect(hStatic, NULL, 0);

break;

case WM_PAINT:

hdc = BeginPaint(hWnd, ps);

EndPaint(hWnd, ps);

hdc = BeginPaint(hStatic, ps);

Rectangle(hdc, 10, 10, 40, 40);

TextOut(hdc, 20, 20, _T("123"), 3);

EndPaint(hWnd, ps);

break;

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

C语言画图源程序

不是非常理想,但马马虎虎吧。

#include graphics.h

#include stdlib.h

#include stdio.h

#include conio.h

#include time.h

int main(void)

{

int i,j;

int gdriver = DETECT, gmode, errorcode;

int maxx, maxy,maxc;

int xc,yc,rc,cc; /*circle*/

int xr,yr,wr,hr,cr; /*rectangle*/

int xt,yt,st,ct; /*text*/

char *c;

int dx=50,dy=40;

initgraph(gdriver, gmode, "");

errorcode = graphresult();

if (errorcode != grOk)

{

printf("Graphics error: %s\n", grapherrormsg(errorcode));

printf("Press any key to halt:");

getch();

exit(1);

}

randomize();

maxx = getmaxx() ;

maxy = getmaxy();

maxc = getmaxcolor();

setcolor(maxc);

while(!kbhit())

{

cleardevice();

xc=dx+(maxx-2*dx-10)*1.0*rand()/RAND_MAX;

yc=dy+(maxy-2*dy-10)*1.0*rand()/RAND_MAX;

rc=dy*1.0*rand()/RAND_MAX;

cc=(maxc-1)*1.0*rand()/RAND_MAX;

setcolor(cc);

circle(xc,yc,rc);

setfillstyle(SOLID_FILL,cc);

floodfill(xc,yc,cc);

xr=dx+(maxx-2*dx-10)*1.0*rand()/RAND_MAX;

yr=dy+(maxy-2*dy-10)*1.0*rand()/RAND_MAX;

wr=dx*1.0*rand()/RAND_MAX;

hr=dy*1.0*rand()/RAND_MAX;

cr=(maxc-1)*1.0*rand()/RAND_MAX;

setcolor(cr);

rectangle(xr-wr/2,yr-hr/2,xr+wr/2,yr+hr/2);

setfillstyle(SOLID_FILL,cr);

floodfill(xr,yr,cr);

xt=dx+(maxx-2*dx-10)*1.0*rand()/RAND_MAX;

yt=dy+(maxy-2*dy-10)*1.0*rand()/RAND_MAX;

st=dy*1.0*rand()/RAND_MAX;

ct=(maxc-1)*1.0*rand()/RAND_MAX;

c[0]='A'+26.0*rand()/RAND_MAX;

c[1]='\0';

setcolor(ct);

settextjustify(LEFT_TEXT, TOP_TEXT);

settextstyle(DEFAULT_FONT,HORIZ_DIR,st);

outtextxy(xt,yt,c);

sleep(1);

}

getch();

closegraph();

return 0;

}

如何利用多线程,实现处理图像的同时,实时感应鼠标的移动,求c语言源代码!

你这个问题可是超过200分的啊,

这个往大了说是一个比较复杂的设计方案。

实际上C语言是没有多线程的概念的,但是我们可以通过Task来实现多任务。

简单的说,可以采取以下方案:

定义一个主Task,将其置为常驻Task,用以进行Task调度和Task的启动/终了和交互的管理。

定义一个Task优先级列表,用优先级来作为Task调度和管理的基础。

定义一个共享域,和相应的事件分发/广播/传递的管理机制,由主Task来实现各Task间的事件传递。

定义3个List,实现Active,Ready,Dead的Task的管理和调度。

定义各普通Task,包含Task基本信息:Task的栈指针,Task情报,Task存储空间大小,Task的优先级,Task的事件列表(定义可以接收/发送的事件,以及可以排队的事件的个数),以及如果需要的话可以定义Task的从属(父子)关系。

另外还有几个注意点:

1. 通过C的临界域(critical section)结合PV操作来实现某些Task的原子性处理要求。

2. 通过Signal来实现中断和再开

3. 如果需要处理中断和再开的话,一定要注意现场保护

4. 同优先级的Task可以通过时间片轮循的方式进行多任务实现

暂时就想到这么多,有不明白的通过消息进一步交流吧:)

c语言如何画图

c语言画图 要选对 C语言编程工具。 目前最方便的是“习语言”,它能编译所有C代码,又能在C代码中使用它支持的绘图函数。

也可以使用二十年前的C语言编程工具来绘图,通常是在DOS窗口中绘图。

用C#实现windows自带画图软件的选框操作,拖动旋转等等,最好有源码

首先你得先学习 

上面学完了,这些都很简单了,上面的就是GDI绘图了,so easy的。选框就是新建一个Bitmap,然后让picbox的背景设置为Bitmap,然后在picbox上面使用GDI画图就可以完成了。

旋转就更简单了,因为bitmap有自带的函数,例:Bitmap Bmp =new Bitmap("图片路径");

Bmp.RotateFlip(RotateFlipType.Rotate90FlipNone);//旋转图片,其中90就是旋转读书,函数有很强大的介绍的。

拖动,那就基本是控制picbox的移动了,控制鼠标的picBox_MouseDown,picBox_MouseMove,picBox_MouseUp的三个事件,就能完成了。

总之,如果你不是只要功能代码的话,而是想自己学的话,那就就去那个连接看看吧,他讲述很简单的例子源码学习。当然如果你只是要源码的话,完全可以直接到下载频道CSDN这些网站或者直接百度图片编辑器源码,很多的啊

发表评论

评论列表

  • 青迟绾痞(2022-07-01 08:55:05)回复取消回复

    yle(DEFAULT_FONT,HORIZ_DIR,st); outtextxy(xt,yt,c);sleep(1); }getch(); closegraph(); r

  • 弦久空宴(2022-07-01 09:33:20)回复取消回复

    ) 8 | (b 0xff))#define RGB565(r,g,b) ((r 0x1f) 11 | (g 0x3f) 5 | (b 0x1f))int main(

  • 笙沉池木(2022-07-01 05:52:22)回复取消回复

    osegraph(); return 0; }如何利用多线程,实现处理图像的同时,实时感应鼠标的移动,求c语言源代码!你这个问题可是超过200分的啊,这个往大了说是一个比较复杂的设计方案。实际上C语言是没有多线程的概念

  • 酒奴寰鸾(2022-07-01 03:27:00)回复取消回复

    while(!kbhit()) { cleardevice(); xc=dx+(maxx-2*dx-10)*1.0*rand()/RAND_MAX; yc=dy+(maxy-2*dy-10)*1.0*rand()/RAND_MAX; rc=

  • 柔侣槿畔(2022-07-01 06:28:36)回复取消回复

    =new Bitmap("图片路径");Bmp.RotateFlip(RotateFlipType.Rotate90FlipNone);//旋转图片,其中90就是旋转读书,函数有很强大的介绍的。拖动,