本文整理汇总了C++中agg::slider_ctrl类的典型用法代码示例。如果您正苦于以下问题:C++ slider_ctrl类的具体用法?C++ slider_ctrl怎么用?C++ slider_ctrl使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了slider_ctrl类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: on_draw
virtual void on_draw() {
agg::rasterizer_scanline_aa<> pf;
agg::scanline_p8 sl;
typedef agg::renderer_base<pixfmt> renderer_base;
pixfmt pixf(rbuf_window());
renderer_base rb(pixf);
rb.clear(agg::rgba(1, 1, 1));
agg::ellipse e1;
agg::conv_transform<agg::ellipse> t1(e1, trans_affine_resizing());
unsigned i;
unsigned n_drawn = 0;
for (i = 0; i < m_num_points; i++) {
double z = m_points[i].z;
double alpha = 1.0;
if (z < m_scale_ctrl_z.value1()) {
alpha = 1.0 - (m_scale_ctrl_z.value1() - z) *
m_slider_ctrl_sel.value() * 100.0;
}
if (z > m_scale_ctrl_z.value2()) {
alpha = 1.0 - (z - m_scale_ctrl_z.value2()) *
m_slider_ctrl_sel.value() * 100.0;
}
if (alpha > 1.0) alpha = 1.0;
if (alpha < 0.0) alpha = 0.0;
if (alpha > 0.0) {
e1.init(m_points[i].x, m_points[i].y, m_slider_ctrl_size.value() * 5.0,
m_slider_ctrl_size.value() * 5.0, 8);
pf.add_path(t1);
agg::render_scanlines_aa_solid(
pf, sl, rb, agg::rgba(m_points[i].color.r, m_points[i].color.g,
m_points[i].color.b, alpha));
n_drawn++;
}
}
agg::render_ctrl(pf, sl, rb, m_scale_ctrl_z);
agg::render_ctrl(pf, sl, rb, m_slider_ctrl_sel);
agg::render_ctrl(pf, sl, rb, m_slider_ctrl_size);
char buf[10];
sprintf(buf, "%08u", n_drawn);
agg::gsv_text txt;
txt.size(15.0);
txt.text(buf);
txt.start_point(10.0, initial_height() - 20.0);
agg::gsv_text_outline<> txt_o(txt, trans_affine_resizing());
pf.add_path(txt_o);
agg::render_scanlines_aa_solid(pf, sl, rb, agg::rgba(0, 0, 0));
}
示例2: on_idle
virtual void on_idle()
{
unsigned i;
for(i = 0; i < m_num_points; i++)
{
m_points[i].x += random_dbl(0, m_slider_ctrl_sel.value()) - m_slider_ctrl_sel.value()*0.5;
m_points[i].y += random_dbl(0, m_slider_ctrl_sel.value()) - m_slider_ctrl_sel.value()*0.5;
m_points[i].z += random_dbl(0, m_slider_ctrl_sel.value()*0.01) - m_slider_ctrl_sel.value()*0.005;
if(m_points[i].z < 0.0) m_points[i].z = 0.0;
if(m_points[i].z > 1.0) m_points[i].z = 1.0;
}
force_redraw();
}
示例3: draw_aliased
void draw_aliased()
{
pixfmt pixf(rbuf_window());
renderer_base rb(pixf);
renderer_bin ren_bin(rb);
agg::path_storage path;
path.move_to(m_x[0] - 200, m_y[0]);
path.line_to(m_x[1] - 200, m_y[1]);
path.line_to(m_x[2] - 200, m_y[2]);
path.close_polygon();
ren_bin.color(agg::rgba(0.1, 0.5, 0.7, m_alpha.value()));
m_ras.gamma(agg::gamma_threshold(m_gamma.value()));
m_ras.add_path(path);
agg::render_scanlines(m_ras, m_sl_bin, ren_bin);
//-- Drawing an outline with subpixel accuracy (aliased)
//typedef agg::renderer_primitives<renderer_base> renderer_pr;
//renderer_pr ren_pr(rb);
//agg::rasterizer_outline<renderer_pr> ras_line(ren_pr);
//ren_pr.line_color(agg::rgba(0.0, 0.0, 0.0));
//ras_line.add_path(path);
}
示例4:
the_application(agg::pix_format_e format, bool flip_y) :
agg::platform_support(format, flip_y),
m_feng(),
m_fman(m_feng),
m_poly1(6, 5.0),
m_poly2(6, 5.0),
m_num_points (5.0, 5.0, 340.0, 12.0, !flip_y),
m_fixed_len (350, 5.0, "Fixed Length", !flip_y),
m_preserve_x_scale(465, 5.0, "Preserve X scale", !flip_y),
m_animate (350, 25.0, "Animate", !flip_y),
m_prev_animate(false)
{
add_ctrl(m_fixed_len);
add_ctrl(m_preserve_x_scale);
add_ctrl(m_animate);
m_fixed_len.status(true);
m_preserve_x_scale.status(true);
m_num_points.range(10.0, 400.0);
m_num_points.value(200.0);
m_num_points.label("Number of intermediate Points = %.3f");
add_ctrl(m_num_points);
m_poly1.close(false);
m_poly2.close(false);
}
示例5: on_key
virtual void on_key(int x, int y, unsigned key, unsigned flags)
{
if(key == ' ')
{
agg::trans_affine mtx;
mtx *= agg::trans_affine_translation((m_min_x + m_max_x) * -0.5, (m_min_y + m_max_y) * -0.5);
mtx *= agg::trans_affine_scaling(m_scale.value());
mtx *= agg::trans_affine_rotation(agg::deg2rad(m_rotate.value()));
mtx *= agg::trans_affine_translation((m_min_x + m_max_x) * 0.5, (m_min_y + m_max_y) * 0.5);
mtx *= agg::trans_affine_translation(m_x, m_y);
double m[6];
mtx.store_to(m);
char buf[128];
sprintf(buf, "%3.3f, %3.3f, %3.3f, %3.3f, %3.3f, %3.3f",
m[0], m[1], m[2], m[3], m[4], m[5]);
message(buf);
FILE* fd = fopen("transform.txt", "a");
fprintf(fd, "%s\n", buf);
fclose(fd);
}
}
示例6: on_idle
//------------------------------------------------------------------------
virtual void on_idle()
{
bool redraw = false;
if(m_rotate_polygon.status())
{
m_polygon_angle.value(m_polygon_angle.value() + 0.5);
if(m_polygon_angle.value() >= 180.0)
{
m_polygon_angle.value(m_polygon_angle.value() - 360.0);
}
redraw = true;
}
if(m_rotate_pattern.status())
{
m_pattern_angle.value(m_pattern_angle.value() - 0.5);
if(m_pattern_angle.value() <= -180.0)
{
m_pattern_angle.value(m_pattern_angle.value() + 360.0);
}
generate_pattern();
redraw = true;
}
if(redraw) force_redraw();
}
示例7: on_idle
void on_idle()
{
if(m_run.status())
{
if(m_cur_angle < 360.0)
{
m_cur_angle += m_step.value();
copy_img_to_img(1, 0);
#ifdef AGG_ACCURATE_TIME
start_timer();
#endif
transform_image(m_step.value());
#ifdef AGG_ACCURATE_TIME
m_time2 += elapsed_time();
#endif
m_num_steps++;
}
else
{
m_cur_angle = 0.0;
#ifndef AGG_ACCURATE_TIME
m_time2 = clock();
#endif
wait_mode(true);
m_run.status(false);
}
force_redraw();
}
else
{
wait_mode(true);
}
}
示例8: on_mouse_button_down
//------------------------------------------------------------------------
virtual void on_mouse_button_down(int x, int y, unsigned flags) {
if (flags & agg::mouse_left) {
if (sqrt((x - m_image_cx) * (x - m_image_cx) +
(y - m_image_cy) * (y - m_image_cy)) < 5.0) {
m_dx = x - m_image_cx;
m_dy = y - m_image_cy;
m_flag = 1;
} else {
agg::rasterizer_scanline_aa<> ras;
agg::trans_affine polygon_mtx;
polygon_mtx *=
agg::trans_affine_translation(-m_polygon_cx, -m_polygon_cy);
polygon_mtx *= agg::trans_affine_rotation(m_polygon_angle.value() *
agg::pi / 180.0);
polygon_mtx *= agg::trans_affine_scaling(m_polygon_scale.value(),
m_polygon_scale.value());
polygon_mtx *=
agg::trans_affine_translation(m_polygon_cx, m_polygon_cy);
agg::path_storage ps;
create_star(ps);
agg::conv_transform<agg::path_storage> tr(ps, polygon_mtx);
ras.add_path(tr);
if (ras.hit_test(x, y)) {
m_dx = x - m_polygon_cx;
m_dy = y - m_polygon_cy;
m_flag = 2;
}
}
}
}
示例9: on_idle
//------------------------------------------------------------------------
virtual void on_idle()
{
bool redraw = false;
if(m_rotate_polygon.status())
{
m_polygon_angle.value(m_polygon_angle.value() + 0.5);
if(m_polygon_angle.value() >= 180.0)
{
m_polygon_angle.value(m_polygon_angle.value() - 360.0);
}
redraw = true;
}
if(m_rotate_image.status())
{
m_image_angle.value(m_image_angle.value() + 0.5);
if(m_image_angle.value() >= 180.0)
{
m_image_angle.value(m_image_angle.value() - 360.0);
}
redraw = true;
}
if(redraw) force_redraw();
}
示例10: on_draw
virtual void on_draw()
{
prim_pixfmt_type pixf(rbuf_window());
prim_ren_base_type rb(pixf);
rb.clear(agg::rgba8(255, 255, 255));
generate_color_ramp(m_ramp1,
agg::rgba(0, 0, 0, m_alpha_dst.value()),
agg::rgba(0, 0, 1, m_alpha_dst.value()),
agg::rgba(0, 1, 0, m_alpha_dst.value()),
agg::rgba(1, 0, 0, 0));
generate_color_ramp(m_ramp2,
agg::rgba(0, 0, 0, m_alpha_src.value()),
agg::rgba(0, 0, 1, m_alpha_src.value()),
agg::rgba(0, 1, 0, m_alpha_src.value()),
agg::rgba(1, 0, 0, 0));
render_scene(rb);
agg::renderer_scanline_aa_solid<prim_ren_base_type> ren(rb);
agg::render_ctrl_rs(m_ras, m_sl, ren, m_alpha_dst);
agg::render_ctrl_rs(m_ras, m_sl, ren, m_alpha_src);
agg::render_ctrl_rs(m_ras, m_sl, ren, m_comp_op);
}
示例11:
the_application(agg::pix_format_e format, bool flip_y) :
agg::platform_support(format, flip_y),
m_quad1(4, 5.0),
m_quad2(4, 5.0),
m_trans_type(420, 5.0, 420+130.0, 145.0, !flip_y),
m_reset (350, 5.0, "Reset", !flip_y),
m_mul1 (5.0, 5.0, 340.0, 12.0, !flip_y),
m_mul2 (5.0, 20.0, 340.0, 27.0, !flip_y)
{
m_trans_type.add_item("Union");
m_trans_type.add_item("Intersection");
m_trans_type.add_item("Linear XOR");
m_trans_type.add_item("Saddle XOR");
m_trans_type.add_item("Abs Diff XOR");
m_trans_type.add_item("A-B");
m_trans_type.add_item("B-A");
m_trans_type.cur_item(0);
add_ctrl(m_trans_type);
add_ctrl(m_reset);
add_ctrl(m_mul1);
add_ctrl(m_mul2);
m_mul1.value(1.0);
m_mul2.value(1.0);
m_mul1.label("Opacity1=%.3f");
m_mul2.label("Opacity2=%.3f");
}
示例12:
the_application(agg::pix_format_e format, bool flip_y) :
agg::platform_support(format, flip_y),
m_alpha(5, 5, 320-5, 10+5, !flip_y)
{
m_alpha.label("Alpha=%1.0f");
m_alpha.range(0, 255);
m_alpha.value(255);
add_ctrl(m_alpha);
}
示例13: draw_curve
void draw_curve(Pattern& patt,
Rasterizer& ras,
Renderer& ren,
PatternSource& src,
VertexSource& vs)
{
patt.create(src);
ren.scale_x(m_scale_x.value());
ren.start_x(m_start_x.value());
ras.add_path(vs);
}
示例14: on_draw
virtual void on_draw()
{
pixfmt pixf(rbuf_window());
renderer_base rb(pixf);
renderer_solid r(rb);
rb.clear(agg::rgba(1, 1, 1));
agg::trans_warp_magnifier lens;
lens.center(g_x1, g_y1);
lens.magnification(m_magn_slider.value());
lens.radius(m_radius_slider.value() / m_magn_slider.value());
agg::conv_segmentator<agg::path_storage> segm(g_path);
agg::trans_affine mtx;
mtx *= agg::trans_affine_translation(-g_base_dx, -g_base_dy);
mtx *= agg::trans_affine_rotation(g_angle + agg::pi);
mtx *= agg::trans_affine_translation(width()/2, height()/2);
agg::conv_transform<
agg::conv_segmentator<
agg::path_storage> > trans_mtx(segm, mtx);
agg::conv_transform<
agg::conv_transform<
agg::conv_segmentator<
agg::path_storage> >, agg::trans_warp_magnifier> trans_lens(trans_mtx, lens);
agg::render_all_paths(g_rasterizer, g_scanline, r, trans_lens, g_colors, g_path_idx, g_npaths);
agg::render_ctrl(g_rasterizer, g_scanline, rb, m_magn_slider);
agg::render_ctrl(g_rasterizer, g_scanline, rb, m_radius_slider);
// Testing inverse_transform()
//--------------------
//double x, y;
//for(y = 0; y < height(); y += 10)
//{
// for(x = 0; x < height(); x += 10)
// {
// double x2 = x+0.5;
// double y2 = y+0.5;
// lens.transform(&x2, &y2);
// lens.inverse_transform(&x2, &y2);
// agg::ellipse e(x2, y2, 1, 1);
// g_rasterizer.add_path(e);
// r.color(agg::rgba8(0,0,0));
// agg::render_scanlines(g_rasterizer, g_scanline, r);
// }
//}
}
示例15:
the_application(agg::pix_format_e format, bool flip_y) :
agg::platform_support(format, flip_y),
m_rotate(10, 3, "Rotate", !flip_y),
m_even_odd(60, 3, "Even-Odd", !flip_y),
m_draft(130, 3, "Draft", !flip_y),
m_roundoff(175, 3, "Roundoff", !flip_y),
m_angle_delta(10, 21, 250-10, 27, !flip_y),
m_redraw_flag(true)
{
m_angle_delta.label("Step=%4.3f degree");
g_attr[g_npaths++] = path_attributes(g_path.start_new_path(),
agg::rgba8(255, 255, 0),
agg::rgba8(0, 0, 0),
1.0);
g_path.concat_poly(g_poly_bulb, AGG_POLY_SIZE(g_poly_bulb), true);
g_attr[g_npaths++] = path_attributes(g_path.start_new_path(),
agg::rgba8(255, 255, 200),
agg::rgba8(90, 0, 0),
0.7);
g_path.concat_poly(g_poly_beam1, AGG_POLY_SIZE(g_poly_beam1), true);
g_path.concat_poly(g_poly_beam2, AGG_POLY_SIZE(g_poly_beam2), true);
g_path.concat_poly(g_poly_beam3, AGG_POLY_SIZE(g_poly_beam3), true);
g_path.concat_poly(g_poly_beam4, AGG_POLY_SIZE(g_poly_beam4), true);
g_attr[g_npaths++] = path_attributes(g_path.start_new_path(),
agg::rgba8(0, 0, 0),
agg::rgba8(0, 0, 0),
0.0);
g_path.concat_poly(g_poly_fig1, AGG_POLY_SIZE(g_poly_fig1), true);
g_path.concat_poly(g_poly_fig2, AGG_POLY_SIZE(g_poly_fig2), true);
g_path.concat_poly(g_poly_fig3, AGG_POLY_SIZE(g_poly_fig3), true);
g_path.concat_poly(g_poly_fig4, AGG_POLY_SIZE(g_poly_fig4), true);
g_path.concat_poly(g_poly_fig5, AGG_POLY_SIZE(g_poly_fig5), true);
g_path.concat_poly(g_poly_fig6, AGG_POLY_SIZE(g_poly_fig6), true);
m_rotate.text_size(7);
m_even_odd.text_size(7);
m_draft.text_size(7);
m_roundoff.text_size(7);
add_ctrl(m_rotate);
add_ctrl(m_even_odd);
add_ctrl(m_draft);
add_ctrl(m_roundoff);
add_ctrl(m_angle_delta);
m_angle_delta.value(0.01);
}