1. 程式人生 > >AGG第三十九課 rasterizer_scanline_aa畫線函數疑惑

AGG第三十九課 rasterizer_scanline_aa畫線函數疑惑

agg rasterizer_scanline_aa

頭文件

#include<agg_rasterizer_scanline_aa.h>

類型

template<class Clip =rasterizer_sl_clip_int>

class rasterizer_scanline_aa

成員函數

void add_path(VertexSource&vs,unsigned path_id=0)加入頂點源

void reset() 清空上一次的渲染緩存數據,每次調用add_path函數之前都需要執行該操作

其中也提供了簡單的畫線功能,但是實際上並沒有生效,所以需要知道整個操作流程是如何執行的!!

void move_to(int x, int y);

void line_to(int x, int y);

如下是一個簡單的使用rasterizer_scanline_aa的例子,並沒有任何的效果

使用rasterizer_scanline_aa畫線是不可能的,但是可以通過move_to_d和line_to_d的配合

使用,構建一個封閉的多邊形,渲染出來的就是一個填充的多邊形

代碼如下:


ras.reset();

/*

agg::path_storage ps1;

ps1.move_to(200,200);

ps1.line_to(400,200);

agg::line_cap_e cap = agg::square_cap;

agg::conv_stroke<agg::path_storage> stroke(ps1);

stroke.line_cap(cap);

stroke.width(50);

ras.add_path(stroke);

*/

//下面代碼主要是測試rasterizer_scanline_aa如何畫線,目前暫時無法實現

ras.move_to(400,400);

ras.line_to(500,500);

agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255,0,0));

ras.reset();

該例子是在已有的基礎上進行測試的,不過有一點是可以肯定的,ras的連線函數之後,並沒有指定渲染線段的樣式,誰知道應該花虛線,還是實線。


摘自:http://www.360doc.com/content/11/1015/09/992979_156311972.shtml

頭文件

#include <agg_rasterizer_scanline_aa.h>

主要記錄兩個畫線的方法

void move_to(int x, int y) 簡單的畫線功能,單位為1/poly_subpixel_scale

void line_to(int x, int y) (poly_subpixel_scale一般為256)

void move_to_d(double x , double y) 簡單的畫線功能,單位為像素

void line_to_d(double x , double y)

現在的一個疑問:可以使用下面的_d版本畫線,但是上面兩個版本應該如何組合使用,尤其是這麽細的線段如何查看!!


AGG第三十九課 rasterizer_scanline_aa畫線函數疑惑