Beispiel #1
0
 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();
 }
Beispiel #2
0
  void generate() {
    unsigned i;

    double rx = initial_width() / 3.5;
    double ry = initial_height() / 3.5;

    for (i = 0; i < m_num_points; i++) {
      double z = m_points[i].z = random_dbl(0.0, 1.0);
      double x = cos(z * 2.0 * agg::pi) * rx;
      double y = sin(z * 2.0 * agg::pi) * ry;

      double dist = random_dbl(0.0, rx / 2.0);
      double angle = random_dbl(0.0, agg::pi * 2.0);

      m_points[i].x = initial_width() / 2.0 + x + cos(angle) * dist;
      m_points[i].y = initial_height() / 2.0 + y + sin(angle) * dist;
      m_points[i].color =
          agg::rgba(m_spline_r.get(z) * 0.8, m_spline_g.get(z) * 0.8,
                    m_spline_b.get(z) * 0.8, 1.0);
    }
  }