2009-05-03 62 views
2

我發現我的自己需要一個線條畫包。我需要彈出一個窗口並畫線和點。文字會很好,但我可以沒有它。最重要的是,我需要一些泥濘的東西來運行。我沒有時間與libs混戰(如果我有時間我願意,但我已經落伍了)。我更喜歡D language解決方案(Windows XP中,D1.0,Phobos),但我可能能夠使用任何C連接和源代碼。C/D線條包

我也可以使用一個進程外解決方案,如:生成輸入文件,調用程序。

任何想法?

回答

1

另一種選擇是使用Cairo。它有一個非常簡單易學的API,功能非常強大,可以直接編寫PNG,PS,PDF和SVG。它還支持繪製到GDI,X和Quartz窗口。

有一個古老的D binding for cairo(某些人才少黑客寫的)可能仍然工作。如果沒有其他內容,它將演示如何鏈接和使用D中的cairo。

0

wxwidgets是功能更多,更廣泛的端口GUI工具包之一。該工具包本身就是C,但是有很多其他語言的綁定。我不知道D是否在其中。

2

如果您想要一個進程外解決方案,爲了快速啓動並運行,很難打敗生成PostScript並啓動PostScript查看器。這個訣竅的巨大優勢在於你生成了一些東西,你不喜歡它的外觀,你可以手工編輯它,直到看起來更好。然後你回去編輯發生器。所以你的原型週期非常快。

+0

您也可以生成SVG並啓動Web瀏覽器。 – Breton 2009-05-03 02:15:52

1

您可以使用SDL從SDL_gfx彈出一個窗口和SDL_gfxPrimitves.h來繪製線條(它也可以呈現基本文本和形狀)。它不需要太多時間來設置並且便攜。

#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); 
} 
2

QD

這是做出這一點。

只需導入qd,與SDL.lib鏈接(SDL_ttf,如果您想要文本),然後設置屏幕(寬度,高度),線(x1,y1,x2,y2)繪製一條線,pset(x1 ,y1)繪製一個點,打印(x1,y1,Bottom | Right,「text」)來打印文本。 cls重置,翻轉以更新屏幕。事件()來處理事件。在上面的命令中添加rgb(r,g,b)來更改線條顏色,填充(rgb(r,g,b))以更改填充顏色。

例如,看測試* .d

祝你好運!

+0

我在哪裏可以獲得SDL.lib? – BCS 2009-05-03 20:16:24