 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Tr8 Cdt

Registrado: 24 Oct 2002Mensajes: 17Ubicación: mexico
|
Publicado: Jue 05 Dic, 2002 7:38 am Asunto: Canvas...?? |
|
|
saludos, quisiera saver si hay un metodo que me haga un triangulo con relleno, o como lo puedo hacer, se me ocurre declarar un objeto de tipo bitmap y luego pintarlo pixel a pixel..... pero no estoy seguro de que sea la mejor solucion.......
espero haberme explicado....
atte: tr8 _________________ Arriba el Unreal Tournament... |
|
| Volver arriba |
|
 |
DesaSoftware Invitado
|
Publicado: Jue 05 Dic, 2002 7:46 am Asunto: |
|
|
enum TFillStyle {fsSurface, fsBorder};
void __fastcall FloodFill(int X, int Y, TColor Color, TFillStyle FillStyle);
Description
Use FloodFill to fill a possibly non-rectangular region of the image with the value of Brush. The boundaries of the region to be filled are determined by moving outward from the point (X,Y) until a color boundary involving the Color parameter is encountered.
FillStyle determines what type of color changes define the boundaries, as indicated in the following table.
Value Meaning
fsSurface Fill all area that has the color indicated by the Color parameter. Stop when another color is encountered.
fsBorder Fill all area that does not have the color indicated by the Color parameter. Stop when Color is encountered.
Use the Pixels property to get the exact value of the color at the point (X,Y) when using a FillStyle of fsSurface. Similarly, when FillStyle is fsBorder, use Pixels to get the exact value of the boundary color if a point on the boundary is known. |
|
| Volver arriba |
|
 |
Javier P.O. Cdt

Registrado: 01 Dic 2002Mensajes: 2
|
Publicado: Jue 05 Dic, 2002 4:54 pm Asunto: Solución |
|
|
Hola Tr8.
Puedes hacer lo siguiente:
1] En un vector tipo TPoint almacenas las coordenadas del triángulo. Por ejemplo:
TPoint *vertices;
vertices=new TPoint[3];
vertices[0].x=0;
vertices[0].y=15;
vertices[1].x=34;
vertices[1].y=67;
vertices[2].x=100;
vertices[2].y=256;
2] Después dibujas el triángulo:
Canvas->MoveTo(vertices[0].x,vertices[0].y);
Canvas->LineTo(vertices[1].x,vertices[1].y);
Canvas->LineTo(vertices[2].x,vertices[2].y);
Canvas->LineTo(vertices[0].x,vertices[0].y);
3] Por último usas la función void __fastcall FloodFill(int X, int Y, TColor Color, TFillStyle FillStyle);
X e Y deben ser un punto interior al triángulo. Yo te recomiendo que uses el centroide:
X=(vertices[0].x+vertices[1].x+vertices[2].x)/3;
Y=(vertices[0].y+vertices[1].y+vertices[2].y)/3;
Después pásale un color y busca en la ayuda las posibilidades que tienes para el estilo de relleno.
NOTA: si te fijas, con este método puedes dibujar cualquier polígono que quieras.
Un saludo a todos. Se me cuiden.
 _________________ Si puede soñarse... puede hacerse
Si no puedes lo que quieres...
quiere lo que puedes. |
|
| Volver arriba |
|
 |
Tr8 Cdt

Registrado: 24 Oct 2002Mensajes: 17Ubicación: mexico
|
Publicado: Sab 07 Dic, 2002 7:49 pm Asunto: gracias...... |
|
|
si es cierto!, ya me acorde que en c++ 3.1 usaba algo similar para rellenar, esa funcion lo que hace es rellenar hata que se topa con limites........
pero no savia como se llamaba en el builder bueno como usarla,
gracias...... lo provare......
atte: tr8 _________________ Arriba el Unreal Tournament... |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Sab 07 Dic, 2002 8:07 pm Asunto: |
|
|
Otra manera de dibujar un polígono con relleno:
| Código: | TPoint vertices[2];
vertices[0] = Point(40,0);
vertices[1] = Point(80,80);
vertices[2] = Point(0,80);
Canvas->Pen->Color = clWhite; // Color del borde
Canvas->Brush->Color = clBlue; // Color del relleno
Canvas->Polygon(vertices, 2); |
|
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|