logo
Литература_1 / photon_old

Прямоугольники с фасками, прямоугольники и стрелки

Функция PgDrawBevelBox() рисует прямоугольник с фасками, который представляет из себя особый тип прямоугольника:

Этот код рисует тёмно-серый прямоугольник с зелёными и красными фасками шириной в четыре пикселя:

void DrawBevelBox( void ) {

PhRect_t r = { 8, 8, 152, 112 };

PgSetFillColor( Pg_DGREY );

PgSetStrokeColor( Pg_RED );

PgDrawBevelBox( &r, Pg_GREEN, 4, Pg_DRAW_FILL_STROKE );

}

              1. Прямоугольник с фасками

Вы можете вызвать функцию PgDrawBeveled(), чтобы нарисовать прямоугольник с фасками (как возможность – со срезанными или скруглёнными углами) или стрелку с фасками. Если Вы рисуете прямоугольник с прямыми углами, результат будет тем же, что и в случае PgDrawBevelBox(). Вот код, рисующий прямоугольники со срезанными и скруглёнными углами и набор стрелок:

void DrawBeveled() {

PhRect_t clipped_rect = { {10, 10}, {150, 62} };

PhRect_t rounded_rect = { {10, 67}, {150, 119} };

PhPoint_t clipping = { 8, 8 };

PhPoint_t rounding = { 12, 12 };

PhRect_t rup = { {190, 20}, {230, 40} };

PhRect_t rdown = { {190, 90}, {230, 110} };

PhRect_t rleft = { {165, 45}, {185, 85} };

PhRect_t rright = { {235, 45}, {255, 85} };

/* Рисуются прямоугольники с фасками: один со срезанными,

другой со скруглёнными углами. */

PgSetFillColor( Pg_GREEN );

PgSetStrokeColor( Pg_GREY );

PgDrawBeveled( &clipped_rect, &clipping, Pg_BLACK, 2,

Pg_DRAW_FILL_STROKE | Pg_BEVEL_CLIP );

PgDrawBeveled( &rounded_rect, &rounding, Pg_BLACK, 2,

Pg_DRAW_FILL_STROKE | Pg_BEVEL_ROUND );

/* Рисуются стрелки с фасками. */

PgSetFillColor( Pg_CYAN );

PgSetStrokeColor( Pg_GREY );

PgDrawBeveled( &rup, NULL, Pg_BLACK, 2,

Pg_DRAW_FILL_STROKE | Pg_BEVEL_AUP );

PgDrawBeveled( &rdown, NULL, Pg_BLACK, 2,

Pg_DRAW_FILL_STROKE | Pg_BEVEL_ADOWN );

PgDrawBeveled( &rleft, NULL, Pg_BLACK, 2,

Pg_DRAW_FILL_STROKE | Pg_BEVEL_ALEFT );

PgDrawBeveled( &rright, NULL, Pg_BLACK, 2,

Pg_DRAW_FILL_STROKE | Pg_BEVEL_ARIGHT );

}

              1. Прямоугольники и стрелки с фасками

Если Вы хотите рисовать стрелку, встроенную в заданный прямоугольник (например, стрелку линейки протяжки), используйте функцию PgDrawArrow().

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4