qow 12: how to draw an egg on a canvas?

hi experts,

i am starting a new quest: qow = question of the week :-)
each week i will introduce a new simple? question.

now qow 12
(one week later, i was absend)

the first working solution will get the points (a graded).

sorry, top 15 experts, you are not allowed to solve this
q, only other can solve this question :-(

well the question is:
how to draw an egg on a canvas??

a little sample is needed

let see

meikl ;-)
LVL 27
kretzschmarAsked:
Who is Participating?
 
MBoConnect With a Mentor Commented:
procedure TForm1.Button2Click(Sender: TObject);
var
rgn:hRgn;
pts:array[0..6] of TPoint;
x1,y,x2,deltax,deltay:integer;
begin
x1:=100; x2:=400; y:=200; deltax:=5; deltay:=100;
Canvas.brush.Color:=clRed;
//Canvas.Pen.Color:=clRed; //for canvas.floodfill
pts[0].x:=x1;            pts[0].y:=y;
pts[1].x:=x1+deltax;     pts[1].y:=y-deltay;
pts[2].x:=x2-deltax;     pts[2].y:=y-2*deltay;
pts[3].x:=x2;            pts[3].y:=y;
pts[4].x:=x2-deltax;     pts[4].y:=y+2*deltay;
pts[5].x:=x1+deltax;     pts[5].y:=y+deltay;
pts[6].x:=x1;            pts[6].y:=y;

//simple and slow
//Canvas.PolyBezier(pts);
//Canvas.FloodFill(x1+100,y,clRed,fsBorder);

//faster
BeginPath(canvas.Handle);
PolyBezier(canvas.Handle,pts,7);
EndPath(canvas.Handle);
rgn:=PathToRegion(Canvas.Handle);
FillRgn(Canvas.handle,Rgn,Canvas.Brush.Handle);
DeleteObject(rgn);

end;
0
 
intheCommented:
hehe very seasonal meikl :)
 
er poached egg on toast :

var
r : trect;
begin
r.Left := 5;
r.top := 5;
r.Right := 110;
r.Bottom := 105;
form1.canvas.FrameRect(r);
form1.canvas.Ellipse(10,10,100,100);
form1.Canvas.Brush.Color := clYellow;
form1.canvas.Ellipse(30,30,80,80);
end;
0
 
ginsonicCommented:
Whay not red ? :o)
0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

 
intheCommented:
er what do you feed your chickens? <G>
0
 
DrDelphiCommented:
with form1.canvas do
 begin
  Brush.Color := clYellow;
  Brush.Style := bsDiagCross;
  Ellipse(0,0,210,350);
  MoveTo(13,90);
  Lineto(210,210);
  MoveTo(6,120);
  Lineto(206,240);
  Brush.Color := clBlue;
  Brush.Style := bsSolid;
  FloodFill(14,94,ClBlack,fsBorder);
  Brush.Style := bsClear;
  Font.Size:=12;
  TextOut(220,0,'HAPPY EASTER!!');
 end;


Good luck!!
0
 
tongaliteCommented:
Hi,

he he he.... this is as simple as it gets

it's fun!
t.
procedure TForm1.EggButtonClick(Sender: TObject);

var
   x,y:integer;

begin
     x:=10; //Pos
     y:=10; //Pos
     image1. canvas.brush.color:=random(256*256*256);//color random
     image1.canvas.ellipse(x,y,x+(200), y+(120)); //ellipse size
      //Image1 = Transparent:=False
    end;
end.
0
 
zebadaCommented:
// _________________________________________________________________________
procedure TForm1.eggTop(l,t,r,b: integer);
var
  half: integer;
begin
  half := t+(b-t) div 2;
  form1.Canvas.Arc(l,t,r,b,l,half,r,half);
end;

// _________________________________________________________________________
procedure TForm1.eggBottom(l,t,r,b: integer);
var
  half: integer;
begin
  half := t+(b-t) div 2;
  form1.Canvas.Arc(l,t,r,b,r,half,l,half);
end;

// _________________________________________________________________________
procedure TForm1.egg(l,t,r,b: integer; egginess: integer);
var
  stretch: integer;
begin
  stretch := (egginess*(b-t)) div 100;
  EggTop(l,t+stretch,r,b);
  EggBottom(l,t,r,b+stretch);
  form1.Canvas.Brush.Color := clBlue;
  form1.Canvas.FloodFill((r-l) div 2,(b-t) div 2,form1.Canvas.Pen.Color,fsBorder);
end;

// _________________________________________________________________________
procedure TForm1.Button1Click(Sender: TObject);
begin
  // Left, top, width, height, egginess
  egg(50,50,300,400,20);
end;

0
 
ginsonicCommented:
//hehe very seasonal meikl :)

inthe, how I know the traditional Eastern Egg is red :P
0
 
kretzschmarAuthor Commented:
perfect :-))

as all know an egg isn't a ellipse or an egg on toast,
even there are some happy pictures, spcially from drdelphi :-))

well next week a new ?simple q?

thanks to all for participating on this quest

meikl ;-)
0
 
kretzschmarAuthor Commented:
for zabada,

i post an additional q for you,
for your also correct egg

meikl ;-)
0
 
kretzschmarAuthor Commented:
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.