QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: dragonssf

如何用c来画图

[复制链接]
发表于 2004-6-8 11:47:33 | 显示全部楼层
[quote:09d11817fd="吴文官"]《计算机图形学》
教你从最基本的像素点开始构造一个图形[/quote]
来的太猛了吧!    不过,好书!
回复

使用道具 举报

发表于 2004-6-8 12:07:36 | 显示全部楼层
[quote:5e679a4727="dragonssf"]各位高手能不能提供一些相应的资料?还有如果用graphic.h,在它里面能直接看出那些函数是画相应图形的吗?[/quote]
linux哪来的graphic.h?用SDL吧
回复

使用道具 举报

发表于 2004-6-8 13:05:06 | 显示全部楼层
[quote:5d2e20da22="sagaeon"][quote:5d2e20da22="吴文官"]《计算机图形学》
教你从最基本的像素点开始构造一个图形[/quote]
来的太猛了吧!    不过,好书![/quote]
却实很猛!
直接写现存吧!
回复

使用道具 举报

发表于 2004-6-8 20:39:45 | 显示全部楼层
清华出版的「visual c++实用图像处理」不错的啊,
回复

使用道具 举报

 楼主| 发表于 2004-6-8 22:40:11 | 显示全部楼层
我毕业设计的任务是Linux多任务运行机制分析,在最后导师要求尽量用图形的方式来体现,现在已经有了前面线程切换的程序,差的就是图形部分了.线程部分如下:
#include<stdio。h>
#include<stdlib。h>
#include<pthread。h>
void *thread1(void *arg);
void *thread2(void *arg);
pthread_attr_t attr;
struct sched_param param;
pthread_t tid;
main(int argc,char **argv)
{
int result;
//printf("hello,world\n");
pthread_attr_init(&attr);
pthread_attr_setschedpolicy(&attr,SCHED_RR);
pthread_attr_getschedparam(&attr,&param);
param。sched_priority=80;
pthread_attr_setschedparam(&attr,&param);
result=pthread_create(&tid,&attr,thread1,NULL);
//printf("test end\n");
}
void *thread1(void *arg)
{
int result;
pthread_attr_init(&attr);
pthread_attr_setschedpolicy(&attr,SCHED_RR);
pthread_attr_getschedparam(&attr,&param);
param。sched_priority=79;
pthread_attr_setschedparam(&attr,&param);
result=pthread_create(&tid,&attr,thread2,NULL);
if(!result)
  printf("the id of htread2 is %d\n",tid);
  graphic();
}
void *thread2(void *arg)
{
graphic();
}
其中graphic就是我要用的图形部分,不知道mozilla所说的SDL跟我这个能不能很好的用
回复

使用道具 举报

发表于 2004-6-9 10:00:45 | 显示全部楼层
可以,但sdl没有直接提供画点,画线。。。。的函数,不过网上随便找都能找到sdl画点的例子,代码也没几行。
回复

使用道具 举报

发表于 2004-6-9 15:43:55 | 显示全部楼层
找一个简单的gui啊,linux下多得很,gtk,minigui,microwindow,sdl等等
回复

使用道具 举报

 楼主| 发表于 2004-6-10 21:56:02 | 显示全部楼层
moilla,你可否帮我弄修改一下这个程序,我导师要求尽量用两个不同的图形,这个是画了一个矩形然后用随机颜色进行填充,我希望另外再画一个,但是不知道该怎么修改了,相关的函数不清楚。
#include "SDL.h"
#include <stdlib.h>
#define SCREENWIDTH 640
#define SCREENHEIGHT 480
graphic()
{
int video( int argc, char* argv[] )
{
SDL_Surface* pSurface ;
SDL_Event event ;
SDL_Rect rect ;
SDL_Init ( SDL_INIT_VIDEO )
pSurface = SDL_SetVideoMode ( SCREENWIDTH , SCREENHEIGHT ,
16 , SDL_ANYFORMAT ) ;
while (1)
{
if ( SDL_PollEvent ( &event ) )
{
if ( event.type == SDL_QUIT ) break ;
}
rect.x = rand ( ) % ( SCREENWIDTH ) ;
rect.y = rand ( ) % ( SCREENHEIGHT ) ;
rect.w = rand ( ) % ( SCREENWIDTH - rect.x ) ;
rect.h = rand ( ) % ( SCREENHEIGHT - rect.y ) ;
SDL_FillRect ( pSurface , &rect ,
SDL_MapRGB ( pSurface->format , rand ( ) % 256 ,
rand ( ) % 256 , rand ( ) % 256 ) ) ;
SDL_UpdateRect ( pSurface , 0 , 0 , 0 , 0 ) ;
}
SDL_Quit ( ) ;
return ( 0 ) ;
}
回复

使用道具 举报

发表于 2004-6-10 22:32:14 | 显示全部楼层
明天上班有空的话我帮你写,晚上来贴。
回复

使用道具 举报

 楼主| 发表于 2004-6-11 09:48:03 | 显示全部楼层
可是我下午就要去打印论文了,急着用啊
回复

使用道具 举报

发表于 2004-6-11 09:50:47 | 显示全部楼层
多介绍一些吧  我向知道linux下文本的
回复

使用道具 举报

发表于 2004-6-12 14:14:59 | 显示全部楼层
唉,真来晚了。没帮上忙实在不好意思。
回复

使用道具 举报

发表于 2004-6-12 22:34:29 | 显示全部楼层
Allegro 也不错啊,可以考虑试试。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-8 05:51 , Processed in 0.040199 second(s), 12 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表