Example #1
0
void paint_julia_prev(infoptr pic, point mouse_pos)
{
  struct picture_info prev_pic;
  dpoint p, tmp;
  int n = 0;

  prev_pic.area = get_prev_rect(pic);
  init_coords(&prev_pic);    /* Asetetaan sopiva skaalaus */
  /* Julia-vakio hiiren koordinaateista */  
  prev_pic.julia_c = to_dpoint(mouse_pos, pic); 
  SRGP_setClipRectangle(prev_pic.area);
  SRGP_setColor(SRGP_BLACK);  /* Peitetään vanha kuva */
  SRGP_fillRectangleCoord(prev_pic.area.bottom_left.x + 1,
			  prev_pic.area.bottom_left.y + 1,
			  prev_pic.area.top_right.x - 1,
			  prev_pic.area.top_right.y - 1); 
  SRGP_setColor(SRGP_WHITE);  /* Valkea reunus */
  SRGP_rectangle(prev_pic.area);
  p.x = 0;   /* Inverse functionin */
  p.y = 0;   /* alkupiste          */

  while(n < JULIA_LIMIT)
  {   /*  z[n+1] = sqrt(z[n] - c)  */
    tmp.x = p.x - prev_pic.julia_c.x;
    tmp.y = p.y - prev_pic.julia_c.y;
    p = c_sqrt(tmp);
    SRGP_point(to_point(p, &prev_pic));
    n++;
  }
  SRGP_setClipRectangle(pic->area);
}
Example #2
0
void print_coords(infoptr pic, point mouse_pos, rectangle box)
{
  char coord_string[20];
  dpoint coords;

  /* Peitetään vanha teksti */
  SRGP_setColor(SRGP_BLACK);
  SRGP_fillRectangle(box);
  
  /* Muotoillaan uusi teksti */
  coords = to_dpoint(mouse_pos, pic);
  sprintf(coord_string, "(%.17f, %.17f)", coords.x, coords.y);
  SRGP_setColor(SRGP_WHITE);
  SRGP_setClipRectangle(box); /* Varmistetaan ettei teksti ylitä rajoja */
  SRGP_text(box.bottom_left, coord_string);
  SRGP_setClipRectangle(pic->area);
}
Example #3
0
static void
EVUprint (char *text)
{
   SRGP_inquireAttributes (&bund);
   SRGP_setColor (COLOR_BLACK);
   SRGP_setWriteMode (WRITE_REPLACE);
   SRGP_setClipRectangle (SRGP_defRectangle(0,0,1023,799));
   SRGP_text (SRGP_defPoint(15,ycoord), text);
   ycoord -= ydelta;
   SRGP_setAttributes (&bund);
}
Example #4
0
PRIVATE void moveTheTruck(SUIT_object o, long currentTime, long totalTime)
{
    
    static 	int		prevOffset = 0;
    static 	rectangle	startRect;

    int		currentOffset;
    rectangle	curRect;
    int		width;
    double	timeFraction;
    static 	point	p;    

    if ( currentTime == 0 ) /* first call */
    {
	prevOffset = 0;
	startRect = SUIT_mapViewportToScreen(o, OBJECT_VIEWPORT(o));
	SRGP_setClipRectangle(startRect);
	return;
    }
    
    timeFraction = ( (double) currentTime) / totalTime;
    width = (startRect.top_right.x - startRect.bottom_left.x) + 1;

    currentOffset = timeFraction * ( (double) (width - 1) );
    
    if ( currentOffset == prevOffset )
	return;

    curRect = startRect;
    curRect.bottom_left.x += prevOffset;
    p.x = startRect.bottom_left.x + currentOffset;
    p.y = startRect.bottom_left.y;

    SRGP_copyPixel(0, curRect, p);
    SRGP_refresh();	/* force it to happen on screen */
    prevOffset = currentOffset;
}