Example #1
0
        void drawRgnOped(SkCanvas* canvas, SkRegion::Op op, SkColor color)
            {
            SkAAClip clip;

            this->build_rgn(&clip, op);

            this->drawOrig(canvas, true);

            SkPaint paint;
            paint.setColor((color & ~(0xFF << 24)) | (0x44 << 24));
            paint_rgn(canvas, clip, paint);

            paint.setStyle(SkPaint::kStroke_Style);
            paint.setColor(color);
            paint_rgn(canvas, clip, paint);

            SkAAClip clip2(clip);
            clip2.translate(0, 80);
            outer_frame(canvas, clip2.getBounds());
            paint_rgn(canvas, clip2, paint);
            }
Example #2
0
static void ferris_wheel(double x, double y , double z, double size)
{
    double pi = M_PI;
    double step = 2*pi/10;
    double r = 3;
    int i;
    //  Draw passenger_boxes
    glPushMatrix();
    glTranslated(x,y,z);
    glScaled(size,size,size);
    for (i=0;i<10;i++)
    {
        double passenger_box_x = r * cos(i*step+rotation);
        double passenger_box_y = r * sin(i*step+rotation);
        passenger_box(passenger_box_x, passenger_box_y,0 , 0.3,0.3,0.3 , 0);
    }
    
    // Draw Circle
    outer_frame(0, 0, -0.31, r, 10, step);
    outer_frame(0, 0, 0.31, r, 10, step);
    
    
    // Draw the spokes
    glColor3f(0.5,0.5,0.5);
    double conversion = 180/pi;
    int current_spoke;
    int num_spokes = spokes;
    
    double offset = 0;
    for(current_spoke = 0; current_spoke < num_spokes; current_spoke++)
    {
        offset = current_spoke*(180/num_spokes);
        beam(0,0,-0.3, r-0.1, 0.1, 0.1,offset + conversion*rotation, offset+conversion*rotation, 0);
        beam(0,0,0.3, r-0.1, 0.1, 0.1,offset + conversion*rotation, offset+conversion*rotation, 0);
    }
    
    // center axis
    glColor3f(0.2,0.5,0.2);
    beam(0,0,0, 1, 0.1, 0.1, 90, 0, 0);
    
    // braces
    glColor3f(0.2,0.2,0.5);
    beam(1.7,-1.7,-1, 2.5, 0.1, 0.1, 135, 135, 0);
    beam(-1.7,-1.7,-1, 2.5, 0.1, 0.1, 45, 45, 0);
    beam(1.7,-1.7,1, 2.5, 0.1, 0.1, 135, 135, 0);
    beam(-1.7,-1.7,1, 2.5, 0.1, 0.1, 45, 45, 0);
    
    
    if(num_lights){
        int spacing;
        r = r-0.1;
        num_spokes = num_spokes*2;
        double x_angle, y_angle, radius;
        for(current_spoke = 0; current_spoke < num_spokes; current_spoke++)
        {
            offset = current_spoke*2*pi/num_spokes;
            for(spacing = 1; spacing < num_lights+1; spacing++)
            {
                // light(spacing*r*cos(offset + rotation)/num_lights,
                //       spacing*r*sin(offset + rotation)/num_lights, 0.35, 0.1, 90, 270);
                radius = spacing*r/num_lights;
                x_angle = cos(offset + rotation);
                y_angle = sin(offset + rotation);
                
                light(radius*x_angle, radius*y_angle, 0.35, 0.1, 0, 180);
                light(radius*x_angle, radius*y_angle, -0.35, 0.1, -180, 0);
            }
        }
    }
    glPopMatrix();
    
}