POV-Ray : Newsgroups : povray.newusers : how to draw sth on the surface of a ball : Re: how to-- PacSmileys: (*< (*-) (*< Server Time
30 Jul 2024 20:27:10 EDT (-0400)
  Re: how to-- PacSmileys: (*< (*-) (*<  
From:
Date: 5 Oct 2003 00:59:52
Message: <3f7fa548$1@news.povray.org>
// Hi Bob,
//
// PacMan-smileys? Good idea -- I've made some ...
//
// BTW: smileys = 1,110,000 google hits
//      smilies = 2,780,000 google hits
//      So I'm with a strong minority which is perfectly O.K.
//      because my weird smileys also are a minority!
//
//    Sputnik
//
// P.S. I don't know why I used two unions in the smiley of
//      my last post; that is nonsense.



// PacMan-Smileys

// +SP8 +EP8 +A0.1 +AM2 +R3 +W1024 +H768 -FN +D


#macro PacSmiley (Upper, Lower, Pos)
// Upper is angle of upper lip below nose
// Lower is angle of lower lip below nose
// Pos is the position of the smiley's center

  union {

    difference {

      // head of smiley
      sphere { 0, 0.5
        pigment { rgbt <1, .9, .3, 0> }
        finish { ambient .6 diffuse .6 }
        }

      // mouth
        intersection {
          plane { y, 0 rotate -Upper*x }
          plane {-y, 0 rotate -Lower*x }
        }

    }//difference

    // eyes
    sphere { 0, 0.1      // get an eye ball
      scale <1, 1, 0.4>  // make it flat
      translate -0.5*z   // put onto surface of head at nose position
      rotate <30, 50, 0> // rise and turn to it's final position
      }
    sphere { 0, 0.1
      scale <1, 1, 0.2>
      translate -0.5*z
      rotate <30, -50, 0>
      }

    texture {
      pigment { color rgb 0 }
      finish { specular .6 }
      }

    rotate -50*y
    translate Pos

    }//union

  #end//macro Smiley


#declare Row = 0; // Row = 0, 1, 2
#while (Row<3)

  #declare Mid = 5+15*Row;
  #declare Y = 1.3*(Row-1);

  #declare Column = 0; // Column = 0, 1, 2, 3
  #while (Column<4)

    #declare Open = 5+25*Column;
    #declare X = 1.3*(Column-1.5);

    #declare Upp = Mid-Open/2;
    #declare Low = Mid+Open/2;
    PacSmiley (Upp, Low, <X, Y, 0>)

    text { ttf "timrom.ttf"
      concat(
        "PacSmiley(", str(Upp,2,0), ", ", str(Low,2,0),
        ", <", str(X,3,1), ",", str(Y,3,1), ",0>)"
        )
      0.1, 0
      scale <0.08, 0.09, 0.1>
      translate <X-0.55, Y-0.6, 0>
      }

    #declare Column = Column+1;
    #end//while Column

  #declare Row = Row+1;
  #end//while Row


background { color <58, 110, 165>/255 }
light_source { <10, 3, -8>, 1 }
camera { location -10*z look_at 0 angle 30 }


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.