Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-12-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola MArkdc, bienvenido a Club Delphi

Como a todos los que se inician te invitamos a que leas nuestra guía de estilo.

Sobre tu consulta, revisa el mensaje #2 de este [ hilo ].

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #2  
Antiguo 14-12-2012
rounin rounin is offline
Miembro
 
Registrado: sep 2005
Posts: 43
Poder: 0
rounin Va por buen camino
Yo hago eso usando FillPath
(BeginPath, PolyBezierTo, CloseFigure, EndPath, FillPath)

Ejemplo de mi libreria

Código Delphi [-]
 
procedure TRBezier.FillArea(Layer: TRLayer);
var i, ip1: Integer;
    pt0, pt1, rpt, lpt: TPoint;
    _pt0, _pt1, _rpt, _lpt: TPointF;
    pts: array[0..3]of TPoint;
begin
  BeginPath(Layer.Canvas.Handle);
  Layer.Converter.LogicToScreen(X[Low], Y[Low], pt0.X, pt0.Y);
  MoveToEx(Layer.Canvas.Handle, pt0.X, pt0.Y, nil);
  for i := Low to High + Integer(Closed)-1 do
  begin
    ip1 := (i+1) mod Length;
    _pt0 := PointF(X[i], Y[i]);
    _pt1 := PointF(X[ip1], Y[ip1]);
    Layer.Converter.LogicToScreen(X[ip1], Y[ip1], pt1.X, pt1.Y);
    case SegmentType[i] of
      stBezier:
      begin
        // Relative control points
        _rpt := RCtrlPt[i];
        _lpt := LCtrlPt[ip1];
        // Absolute control points
        OffsetPointF(_rpt, _pt0.X, _pt0.Y);
        OffsetPointF(_lpt, _pt1.X, _pt1.Y);
        Layer.Converter.LogicToScreen(_rpt.X, _rpt.Y, rpt.X, rpt.Y);
        Layer.Converter.LogicToScreen(_lpt.X, _lpt.Y, lpt.X, lpt.Y);
        pts[1] := rpt;
        pts[2] := lpt;
        pts[3] := pt1;
        PolyBezierTo(Layer.Canvas.Handle, pts[1], 3);
      end;
      stLine: PolyLineTo(Layer.Canvas.Handle, pt1, 1);
    end;
  end;
  CloseFigure(Layer.Canvas.Handle);
  EndPath(Layer.Canvas.Handle);
  FillPath(Layer.Canvas.Handle);
end;
Responder Con Cita
  #3  
Antiguo 18-12-2012
MArkdc MArkdc is offline
Registrado
NULL
 
Registrado: dic 2012
Posts: 3
Poder: 0
MArkdc Va por buen camino
Thumbs up Rellenos Bezier

Muchas gracias por tu aporte me sirvio como referencia para crear un procedimiento para rellenar bezier ya entregado mi dibujo y si quedo perfecto
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
rellenos de mapa de bits maravert Gráficos 2 12-02-2005 15:01:44
Curva Bezier esquerda21 Gráficos 5 15-05-2003 18:15:46


La franja horaria es GMT +2. Ahora son las 21:21:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi