Some more fixes for the gradiation rectangles. The position is now calculated in an int, you should not experience any problem with the circle limit.
Also fixed the operation handling. The rectangle is now drawn properly when you finish sizing it. The vector line still leaves some artifact on screen, however... git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@310 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
		
							parent
							
								
									cf54d4a460
								
							
						
					
					
						commit
						d72897e93d
					
				
							
								
								
									
										6
									
								
								graph.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								graph.c
									
									
									
									
									
								
							@ -5213,7 +5213,7 @@ void Tracer_rectangle_degrade(short RAX,short RAY,short RBX,short RBY,short VAX,
 | 
			
		||||
 | 
			
		||||
    short a = (VBY - VAY)/(VBX - VAX);
 | 
			
		||||
    short b = VAY - a*VAX;
 | 
			
		||||
    short Distance_X, Distance_Y;
 | 
			
		||||
    int Distance_X, Distance_Y;
 | 
			
		||||
 | 
			
		||||
    DEBUG("inttotal",Degrade_Intervalle_total);
 | 
			
		||||
 | 
			
		||||
@ -5221,8 +5221,8 @@ void Tracer_rectangle_degrade(short RAX,short RAY,short RBX,short RBY,short VAX,
 | 
			
		||||
	for (Pos_X = RAX;Pos_X<RBX;Pos_X++)
 | 
			
		||||
    {
 | 
			
		||||
	// On calcule ou on en est dans le dégradé
 | 
			
		||||
	Distance_X = pow(Pos_Y - VAY,2)+pow(Pos_X - VAX,2);
 | 
			
		||||
	Distance_Y = pow(-a * Pos_X + Pos_Y - b,2)/(a*a+1);
 | 
			
		||||
	Distance_X = pow((int)(Pos_Y - VAY),2)+pow((int)(Pos_X - VAX),2);
 | 
			
		||||
	Distance_Y = pow((int)(-a * Pos_X + Pos_Y - b),2)/(a*a+1);
 | 
			
		||||
 | 
			
		||||
	printf("%d\t%d\t%d\n",Pos_X,Distance_X,Distance_Y);
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										34
									
								
								operatio.c
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								operatio.c
									
									
									
									
									
								
							@ -4234,9 +4234,38 @@ void Rectangle_Degrade_0_5(void)
 | 
			
		||||
// on doit donc attendre que l'utilisateur clique quelque part
 | 
			
		||||
// On stocke tout de suite les coordonnées du pinceau comme ça on change d'état et on passe à la suite
 | 
			
		||||
{
 | 
			
		||||
  short RAX;
 | 
			
		||||
  short RAY;
 | 
			
		||||
  short RBX;
 | 
			
		||||
  short RBY;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  // Tracé propre du rectangle
 | 
			
		||||
  Operation_POP(&RBY);
 | 
			
		||||
  Operation_POP(&RBX);
 | 
			
		||||
  Operation_POP(&RAY);
 | 
			
		||||
  Operation_POP(&RAX);
 | 
			
		||||
 | 
			
		||||
  Pinceau_X = RAX;
 | 
			
		||||
  Pinceau_Y = RAY;
 | 
			
		||||
  Effacer_curseur();
 | 
			
		||||
 | 
			
		||||
  short largeur = abs(RBX-RAX);
 | 
			
		||||
  short hauteur = abs(RBY-RAY);
 | 
			
		||||
  Ligne_horizontale_XOR(Min(RAX,RBX),Min(RAY,RBY),largeur);
 | 
			
		||||
  Ligne_horizontale_XOR(Min(RAX,RBX),Max(RAY,RBY)-1,largeur);
 | 
			
		||||
  Ligne_verticale_XOR(Min(RAX,RBX),Min(RAY,RBY),hauteur);
 | 
			
		||||
  Ligne_verticale_XOR(Max(RAX,RBX)-1,Min(RAY,RBY),hauteur);
 | 
			
		||||
  UpdateRect(Min(RAX,RBX),Min(RAY,RBY),largeur+1,hauteur+1);
 | 
			
		||||
 | 
			
		||||
  Operation_PUSH(RAX);
 | 
			
		||||
  Operation_PUSH(RAY);
 | 
			
		||||
  Operation_PUSH(RBX);
 | 
			
		||||
  Operation_PUSH(RBY);
 | 
			
		||||
 | 
			
		||||
  Forme_curseur = FORME_CURSEUR_CIBLE;
 | 
			
		||||
  Operation_PUSH(Pinceau_X);
 | 
			
		||||
  Operation_PUSH(Pinceau_Y);
 | 
			
		||||
  Operation_PUSH(RBX);
 | 
			
		||||
  Operation_PUSH(RBY);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Rectangle_Degrade_0_7(void)
 | 
			
		||||
@ -4352,7 +4381,6 @@ void Rectangle_Degrade_0_9(void)
 | 
			
		||||
    // On remet le pinceau en haut à droite du rectangle pour effacer le curseur qui y traine
 | 
			
		||||
    Pinceau_X = Rect_Debut_X;
 | 
			
		||||
    Pinceau_Y = Rect_Debut_Y;
 | 
			
		||||
    Effacer_curseur();
 | 
			
		||||
 | 
			
		||||
    // Et enfin on trace le rectangle avec le dégradé dedans !
 | 
			
		||||
//    if (Mouse_K==Ancien_Mouse_K)				// TODO sauver l'ancien mouse K à la place de la couleur dans l'étape 1. Modifier aussi les autres étapes pour pouvoir annuler à tout moment.
 | 
			
		||||
 | 
			
		||||
@ -257,9 +257,9 @@ static const char * TableAideCredits[] =
 | 
			
		||||
  AIDE_TEXTE("")
 | 
			
		||||
  AIDE_BOLD("                 BUGFINDERS")                //
 | 
			
		||||
  AIDE_TEXTE("")                                          //
 | 
			
		||||
  AIDE_TEXTE("  Ced        El Topo    Frost         Grimmy")
 | 
			
		||||
  AIDE_TEXTE("  keito      kusma      Lord Graga    mind")
 | 
			
		||||
  AIDE_TEXTE("  MooZ       tempest    titus^Rab")
 | 
			
		||||
  AIDE_TEXTE("  Ced       El Topo   fallenblood Frost")
 | 
			
		||||
  AIDE_TEXTE("  Grimmy    keito     kusma       Lord Graga")
 | 
			
		||||
  AIDE_TEXTE("  mind      MooZ      tempest     titus^Rab")
 | 
			
		||||
  AIDE_TEXTE("")
 | 
			
		||||
  AIDE_BOLD ("               OUR HOMEPAGE")               //
 | 
			
		||||
  AIDE_TEXTE("")                                          //
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user