c源码画图移动(c语言控制图形移动代码)
本文目录一览:
- 1、用c语言api编程 如何将文本或者数字放入某个图形中,并且二者可以一起移动
- 2、C语言如何画图
- 3、C语言画图源程序
- 4、如何利用多线程,实现处理图像的同时,实时感应鼠标的移动,求c语言源代码!
- 5、c语言如何画图
- 6、用C#实现windows自带画图软件的选框操作,拖动旋转等等,最好有源码
用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这些网站或者直接百度图片编辑器源码,很多的啊