C / D линия рисования пакета - PullRequest
2 голосов
/ 03 мая 2009

Я считаю, что мне нужен пакет для рисования линий. Мне нужно открыть окно и нарисовать линии и точки. Текст был бы хорош, но я могу жить без него. Самое главное, мне нужно что-то, что очень просто запустить. У меня нет времени, чтобы побродить с библиотекарями (если бы у меня было время, я бы захотел, но я уже далеко позади).

Я бы предпочел решение на языке D (Windows XP, D1.0, Phobos), но я мог бы использовать что-нибудь с C-связью и источником.

Я также мог бы использовать решение вне процесса, как в: создать входной файл, вызвать программу.

Есть идеи?

Ответы [ 5 ]

2 голосов
/ 03 мая 2009

QD .

Это было сделано для этого.

Просто импортируйте qd, свяжите с SDL.lib (SDL_ttf, если вы хотите текст), затем экран (ширина, высота) для настройки, линию (x1, y1, x2, y2), чтобы нарисовать линию, pset (x1, y1) чтобы нарисовать точку, напечатайте (x1, y1, Bottom | Right, «text»), чтобы напечатать текст. CLS для сброса, переверните, чтобы обновить экран. events () для обработки событий. Добавьте rgb (r, g, b) к любой из приведенных выше команд, чтобы изменить цвет линии, Fill (rgb (r, g, b)), чтобы изменить цвет заливки.

Примеры см. В тесте * .d

Удачи!

2 голосов
/ 03 мая 2009

Если вам нужно решение вне процесса, для быстрого запуска и запуска трудно справиться с , генерирующим PostScript и запускающим программу просмотра PostScript . Большим преимуществом этого трюка является то, что вы генерируете что-то, вам не нравится, как оно выглядит, вы можете редактировать его вручную, пока оно не будет выглядеть лучше. Затем вы возвращаетесь и редактируете генератор. Так что ваш цикл прототипирования очень быстрый.

1 голос
/ 03 мая 2009

Вы можете использовать SDL для всплывающего окна и SDL_gfxPrimitves.h из SDL_gfx для рисования линий (он также может отображать основной текст и фигуры). Установка не занимает много времени и является портативной.

#include <SDL/SDL.h>
#include <SDL/SDL_gfxPrimitives.h>

main() {
    SDL_Surface *screen = NULL;

    if ( SDL_Init(SDL_INIT_VIDEO) < 0 )
        exit(EXIT_FAILURE);

    atexit(SDL_Quit);

    screen = SDL_SetVideoMode(500, 500, 32, SDL_SWSURFACE|SDL_ANYFORMAT);

    if ( screen == NULL )
        exit(EXIT_FAILURE);

    lineColor(screen, 50, 50, 200, 200, 0xff0000ff);
    SDL_Flip(screen);

    sleep(5);
}
1 голос
/ 03 мая 2009

Другая альтернатива - использовать Каир . Он имеет очень простой в освоении API, довольно мощный и может писать PNG, PS, PDF и SVG из коробки. Он также поддерживает рисование в окнах GDI, X и Quartz.

Существует старая D привязка для cairo (написанная каким-то бездарным хакером), которая все еще может работать. Если ничего другого, он покажет, как связать и использовать Каир в D.

0 голосов
/ 03 мая 2009

wxwidgets является одним из наиболее функциональных и более широко перенесенных наборов инструментов GUI. Инструментарий изначально C, но есть привязки для множества других языков. Я не знаю, есть ли среди них Д.

...