void Canvas_Delegate_Tests::paint_event()
{
    draw_segment(segment(Point(complex_number(-1.25, -1.5)), Point(complex_number(-1.25, 1.5))));
    draw_segment(segment(Point(complex_number(-1.5, -1.25)), Point(complex_number(1.5, -1.25))));

    draw_incomplete_curve(curve_points_, QColor("blue"));
    draw_nodes(curve_points_, points_radius_, QColor("green"));

    if (is_curve_point_under_mouse_)
    {
        mark_circle(Circle(curve_points_[curve_point_under_mouse_], points_radius_), QColor("red"));
    }
    return;
}
void Canvas_Delegate_Riemann_Mapping::paint_event()
{
    /*if (left_canvas_)
    {
        std::cout << "Entering left Canvas_Delegate_Riemann_Mapping::paint_event" << std::endl;
    }
    else
    {
        std::cout << "Entering right Canvas_Delegate_Riemann_Mapping::paint_event" << std::endl;
    }*/

    if (image_mode_ && *draw_2_curves_flag_ == DRAWING_CURVES && !shower_)
    {
        draw_background_image();
    }


    if (tiling_->nb_vertices()>0 && *draw_2_curves_flag_ == DRAWING_CURVES)
    {
        draw_tiling(*tiling_);
    }

    if ((*draw_2_curves_flag_ == DRAWING_CURVES || !shower_)
            && input_triangulation_->nb_triangles() > 0)
    {
        if (input_triangulation_->nb_triangles() == input_triangulation_->nb_colors())
        {
            if (shower_)
            {
                draw_empty_triangulation(*input_triangulation_);
            }
            else
            {

                if (image_mode_)
                {
                    draw_triangulation_from_image();
                }
                else
                {
                    draw_triangulation(*input_triangulation_);
                }
            }
        }
        else
        {
            std::cout << "ERROR in Canvas_Delegate_Riemann_Mapping::paint_event: tried to draw unfit triangulation" << std::endl;
        }
    }
    else if(shower_)
    {
        if (image_mode_)
        {
            draw_shower_triangulation_from_image();
        }
        else
        {
            draw_triangulation(*output_triangulation_);
        }
    }

    if (is_vertex_highlighted_ && (!is_node_point_under_mouse_) && (!is_node_point_selected_) &&
            (*draw_2_curves_flag_==DRAW_2_CURVES_DONE || !shower_) && (!is_tangent_control_point_under_mouse_))
    {
        //std::cout << "about to hightlight triangle" << std::endl;
        if (*draw_2_curves_flag_ == DRAW_2_CURVES_DONE && shower_)
        {
            if (index_vertex_highlighted_ < output_triangulation_->nb_triangles())
            {
                Triangle T;
                if (output_triangulation_->get_triangle(index_vertex_highlighted_, T))
                {
                    mark_triangle(T, QColor("red"));
                }
            }
            else
            {
                std::cout << "ERROR in Canvas_Delegate_Riemann_Mapping::paint_event: tried to draw a triangle with bad index" << std::endl;
            }
        }
        else
        {
            if (index_vertex_highlighted_ < input_triangulation_->nb_triangles())
            {
                Triangle T;
                if (input_triangulation_->get_triangle(index_vertex_highlighted_, T))
                {
                    mark_triangle(T, QColor("red"));
                }
            }
            else
            {
                std::cout << "ERROR in Canvas_Delegate_Riemann_Mapping::paint_event: tried to draw a triangle with bad index" << std::endl;
            }
        }
        //std::cout << "triangle highlighted" << std::endl;
    }

    draw_nodes(*nodes_, nodes_radius_in_pixels_/scale_);

    if (*draw_curve_flag_==DRAW_CURVE_NODES && nodes_->size()>0)
    {
        mark_circle(Circle((*nodes_)[0], nodes_radius_in_pixels_/scale_), QColor("red"));
        draw_incomplete_curve(*nodes_);
    }
    else
    {
        draw_curve(*curve_);
    }

    if (beziers_mode())
    {
        draw_tangents(*nodes_, *tangent_factors_, 0.8*nodes_radius_in_pixels_/scale_);
    }

    if (is_node_point_under_mouse_)
    {
        if(node_point_under_mouse_<nodes_->size())
        {
            mark_circle(Circle((*nodes_)[node_point_under_mouse_], nodes_radius_in_pixels_/scale_), QColor("green"));
        }
        else
        {
            std::cout << "ERROR in Canvas_Delegate_Riemann_Mapping::paint_event: node index problem" << std::endl;
            throw(QString("ERROR in Canvas_Delegate_Riemann_Mapping::paint_event: node index problem"));
        }
    }

    if (is_tangent_control_point_under_mouse_ && !is_node_point_under_mouse_ && beziers_mode())
    {
        if(tangent_control_point_under_mouse_<nodes_->size() && tangent_factors_->size() == nodes_->size())
        {
            unsigned int i = tangent_control_point_under_mouse_, N = nodes_->size();
            Point T((*nodes_)[i].get_affix() +
                    (*tangent_factors_)[i] * ((*nodes_)[(i+1)%N].get_affix() - (*nodes_)[(N+i-1)%N].get_affix()));
            mark_circle(Circle(T, 0.8*nodes_radius_in_pixels_/scale_), QColor("green"));
        }
        else
        {
            std::cout << "ERROR in Canvas_Delegate_Draw_Curve::paint_event: tangent index problem" << std::endl;
            throw(QString("ERROR in Canvas_Delegate_Draw_Curve::paint_event: tangent index problem"));
        }
    }

    /*if (left_canvas_)
    {
        std::cout << "Leaving left Canvas_Delegate_Riemann_Mapping::paint_event" << std::endl;
    }
    else
    {
        std::cout << "Leaving right Canvas_Delegate_Riemann_Mapping::paint_event" << std::endl;
    }*/
    return;
}
示例#3
0
void ask_pos(int type)
{int i,c_no,c_nox,c_noy;

 settextstyle(1,0,3);
 take:
 outtextxy(5,400,"STATUS-");

 if(type==0)
 {setcolor(0);outtextxy(100,400,pl2_name);
  setcolor(WHITE);outtextxy(100,400,pl1_name);}
  else
  {setcolor(0);outtextxy(100,400,pl1_name);
   setcolor(WHITE);outtextxy(100,400,pl2_name);}
   outtextxy(5,420,"ENTER POSITION(X,Y):");

   setcolor(0);
  for(i=0;i<300;i++)
   outtextxy(290+i,420,"[1,1]");
   setcolor(WHITE);
   c_nox=bioskey(0);
   c_noy=bioskey(0);

switch(type)
{case 0:{switch(c_nox)
      {case 561:  {c_nox=1;switch(c_noy)
		       {case 561:
{c_noy=1;outtextxy(290,420,"[1,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315-160,235-100);break;}
			case 818:
{c_noy=2;outtextxy(290,420,"[1,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315,235-100);    break;}
			case 1075:
{c_noy=3;outtextxy(290,420,"[1,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315+160,235-100);break;}

			case
20273:{c_noy=1;outtextxy(290,420,"[1,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315-160,235-100);break;}
			case
20530:{c_noy=2;outtextxy(290,420,"[1,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315,235-100);    break;}
			case
20787:{c_noy=3;outtextxy(290,420,"[1,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315+160,235-100);break;}
			default:{goto take;}
			}break;}
       case 818:  {c_nox=2;switch(c_noy)
		       {case 561:
{c_noy=1;outtextxy(290,420,"[2,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315-160,235);break;}
			case 818:
{c_noy=2;outtextxy(290,420,"[2,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315,235);break;}
			case 1075:
{c_noy=3;outtextxy(290,420,"[2,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315+160,235);break;}

			case
20273:{c_noy=1;outtextxy(290,420,"[2,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315-160,235);break;}
			case
20530:{c_noy=2;outtextxy(290,420,"[2,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315,235);break;}
			case
20787:{c_noy=3;outtextxy(290,420,"[2,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315+160,235);break;}
			default:{goto take;}
			}break;}
       case 1075: {c_nox=3;switch(c_noy)
		       {case 561:
{c_noy=1;outtextxy(290,420,"[3,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315-160,235+100);break;}
			case 818:
{c_noy=2;outtextxy(290,420,"[3,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315,235+100);break;}
			case 1075:
{c_noy=3;outtextxy(290,420,"[3,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315+160,235+100);break;}

			case
20273:{c_noy=1;outtextxy(290,420,"[3,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315-160,235+100);break;}
			case
20530:{c_noy=2;outtextxy(290,420,"[3,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315,235+100);break;}
			case
20787:{c_noy=3;outtextxy(290,420,"[3,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315+160,235+100);break;}
			default:{goto take;}
			}break;}
       case 20273:  {c_nox=1;switch(c_noy)
		       {case 561:
{c_noy=1;outtextxy(290,420,"[1,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315-160,235-100);break;}
			case 818:
{c_noy=2;outtextxy(290,420,"[1,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315,235-100);    break;}
			case 1075:
{c_noy=3;outtextxy(290,420,"[1,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315+160,235-100);break;}

			case
20273:{c_noy=1;outtextxy(290,420,"[1,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315-160,235-100);break;}
			case
20530:{c_noy=2;outtextxy(290,420,"[1,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315,235-100);    break;}
			case
20787:{c_noy=3;outtextxy(290,420,"[1,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315+160,235-100);break;}
			default:{goto take;}
			}break;}
       case 20530:  {c_nox=2;switch(c_noy)
		       {case 561:
{c_noy=1;outtextxy(290,420,"[2,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315-160,235);break;}
			case 818:
{c_noy=2;outtextxy(290,420,"[2,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315,235);break;}
			case 1075:
{c_noy=3;outtextxy(290,420,"[2,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315+160,235);break;}

			case
20273:{c_noy=1;outtextxy(290,420,"[2,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315-160,235);break;}
			case
20530:{c_noy=2;outtextxy(290,420,"[2,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315,235);break;}
			case
20787:{c_noy=3;outtextxy(290,420,"[2,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315+160,235);break;}
			default:{goto take;}
			}break;}
       case 20787: {c_nox=3;switch(c_noy)
		       {case 561:
{c_noy=1;outtextxy(290,420,"[3,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315-160,235+100);break;}
			case 818:
{c_noy=2;outtextxy(290,420,"[3,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315,235+100);break;}
			case 1075:
{c_noy=3;outtextxy(290,420,"[3,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315+160,235+100);break;}

			case
20273:{c_noy=1;outtextxy(290,420,"[3,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315-160,235+100);break;}
			case
20530:{c_noy=2;outtextxy(290,420,"[3,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315,235+100);break;}
			case
20787:{c_noy=3;outtextxy(290,420,"[3,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_circle(315+160,235+100);break;}
			default:{goto take;}
			}break;}
       case 283:{closegraph();break;}
		}
  break;}

 case 1:{switch(c_nox)
      {case 561:  {c_nox=1;switch(c_noy)
		       {case 561:
{c_noy=1;outtextxy(290,420,"[1,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315-160,235-100);break;}
			case 818:
{c_noy=2;outtextxy(290,420,"[1,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315,235-100);    break;}
			case 1075:
{c_noy=3;outtextxy(290,420,"[1,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315+160,235-100);break;}

			case
20273:{c_noy=1;outtextxy(290,420,"[1,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315-160,235-100);break;}
			case
20530:{c_noy=2;outtextxy(290,420,"[1,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315,235-100);    break;}
			case
20787:{c_noy=3;outtextxy(290,420,"[1,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315+160,235-100);break;}
			default:{goto take;}
			}break;}
       case 818:  {c_nox=2;switch(c_noy)
		       {case 561:
{c_noy=1;outtextxy(290,420,"[2,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315-160,235);break;}
			case 818:
{c_noy=2;outtextxy(290,420,"[2,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315,235);break;}
			case 1075:
{c_noy=3;outtextxy(290,420,"[2,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315+160,235);break;}

			case
20273:{c_noy=1;outtextxy(290,420,"[2,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315-160,235);break;}
			case
20530:{c_noy=2;outtextxy(290,420,"[2,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315,235);break;}
			case
20787:{c_noy=3;outtextxy(290,420,"[2,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315+160,235);break;}
			default:{goto take;}
			}break;}
       case 1075: {c_nox=3;switch(c_noy)
		       {case 561:
{c_noy=1;outtextxy(290,420,"[3,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315-160,235+100);break;}
			case 818:
{c_noy=2;outtextxy(290,420,"[3,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315,235+100);break;}
			case 1075:
{c_noy=3;outtextxy(290,420,"[3,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315+160,235+100);break;}

			case
20273:{c_noy=1;outtextxy(290,420,"[3,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315-160,235+100);break;}
			case
20530:{c_noy=2;outtextxy(290,420,"[3,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315,235+100);break;}
			case
20787:{c_noy=3;outtextxy(290,420,"[3,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315+160,235+100);break;}
			default:{goto take;}
			}break;}
       case 20273:  {c_nox=1;switch(c_noy)
		       {case 561:
{c_noy=1;outtextxy(290,420,"[1,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315-160,235-100);break;}
			case 818:
{c_noy=2;outtextxy(290,420,"[1,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315,235-100);    break;}
			case 1075:
{c_noy=3;outtextxy(290,420,"[1,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315+160,235-100);break;}

			case
20273:{c_noy=1;outtextxy(290,420,"[1,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315-160,235-100);break;}
			case
20530:{c_noy=2;outtextxy(290,420,"[1,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315,235-100);    break;}
			case
20787:{c_noy=3;outtextxy(290,420,"[1,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315+160,235-100);break;}
			default:{goto take;}
			}break;}
       case 20530:  {c_nox=2;switch(c_noy)
		       {case 561:
{c_noy=1;outtextxy(290,420,"[2,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315-160,235);break;}
			case 818:
{c_noy=2;outtextxy(290,420,"[2,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315,235);break;}
			case 1075:
{c_noy=3;outtextxy(290,420,"[2,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315+160,235);break;}

			case
20273:{c_noy=1;outtextxy(290,420,"[2,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315-160,235);break;}
			case
20530:{c_noy=2;outtextxy(290,420,"[2,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315,235);break;}
			case
20787:{c_noy=3;outtextxy(290,420,"[2,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315+160,235);break;}
			default:{goto take;}
			}break;}
       case 20787: {c_nox=3;switch(c_noy)
		       {case 561:
{c_noy=1;outtextxy(290,420,"[3,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315-160,235+100);break;}
			case 818:
{c_noy=2;outtextxy(290,420,"[3,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315,235+100);break;}
			case 1075:
{c_noy=3;outtextxy(290,420,"[3,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315+160,235+100);break;}

			case
20273:{c_noy=1;outtextxy(290,420,"[3,1]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315-160,235+100);break;}
			case
20530:{c_noy=2;outtextxy(290,420,"[3,2]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315,235+100);break;}
			case
20787:{c_noy=3;outtextxy(290,420,"[3,3]");if(avail(c_nox,c_noy)==0){goto
take;}mark_cross(315+160,235+100);break;}
			default:{goto take;}
			}break;}
	 case 283:{closegraph();break;}
   }
  }
 }
if(type==0)
{rec_0[c_0][0]=c_nox;
 rec_0[c_0][1]=c_noy;c_0++;
//printf("
%d %d",rec_0[c_0-1][0],rec_0[c_0-1][1]);