下面是一个过去可以编写的 C 程序示例:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
void main()
{
int gd=DETECT, gm;
initgraph(&gd, &gm, "c:\\turboc\\bgi");
circle(200,100,150);
getch();
closegraph();
}
我认为这是 MSDOS 下的 Turbo C。它可以让您在屏幕上绘图,并且可以轻松扩展以制作快速的动画图形,例如 xscreensaver hacks 中的动画图形。
我如何在 ubuntu 上的 gcc 中编写等效的内容?可以用Java实现吗?
最佳答案
#include<X11/Xlib.h>
#include<stdlib.h>
/* gcc -std=gnu99 -o circle circle.c -lX11 */
int main (int argc, char *argv[])
{
/* connect to the X server and make a window */
Display *dpy = XOpenDisplay (getenv ("DISPLAY"));
Window w = XCreateSimpleWindow (dpy, DefaultRootWindow (dpy),
100, 100, 640, 480, 1,
BlackPixel (dpy, DefaultScreen (dpy)),
WhitePixel (dpy, DefaultScreen (dpy)));
/* raise it and wait */
XSelectInput (dpy, w, StructureNotifyMask);
XMapRaised (dpy, w);
for(XEvent e; ( e.type != MapNotify );
XWindowEvent (dpy, w, StructureNotifyMask, &e));
/* create a graphics context for drawing in the window */
GC g = XCreateGC (dpy, w, 0, NULL);
/* draw a circle */
XDrawArc(dpy,w,g,200,100,150,150,0,360*64);
XFlush(dpy);
/*wait for key press*/
XSelectInput (dpy, w, KeyReleaseMask);
for(XEvent e; ( e.type != KeyRelease );
XWindowEvent (dpy, w, KeyReleaseMask, &e));
/*clean up*/
XDestroyWindow( dpy, w );
XCloseDisplay (dpy);
}
关于java - 如何在现代 Linux 中轻松制作图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23504974/