| Autor | Správa |
Gumeny
 Užívateľ
 Založený: 04.04.2010 Príspevky: 38
 | Zaslal: St 06.07.11 15:03 |   |
Zdravím,
som začiatočník v Delphi a chcem napísať program, ktorý vykresli nákres valca. Ibaže ako podstavu nemôzem použiť len elipsu, keďže jednú časť podstavy vidno a druhú nie (teda je zakreslená čiarkovanou čiarou). Potreboval by som teda vykresliť dve polelipsy, pričom každú iným štýlom - skrátka nákres valca. |
| |
  |
 |
Fico
 Skúsený užívateľ
 Založený: 11.01.2009 Príspevky: 1049
 | Zaslal: Št 07.07.11 20:33 |   |
| kód: | Image1.Canvas.Pen.Style := psSolid;
Image1.Canvas.Ellipse( 100, 100, 200, 200 );
Image1.Canvas.Pen.Style := psDash;
Image1.Canvas.Pie( 100, 100, 200, 200, 100, 150, 150, 100 ); |
Viem len o funkcii Pie, ale tato, ako si si vsimol, kresli cely obvod kruznice, nie len vysek, cize tam ostanu aj dva polomery. Tie ale nie je problem prekreslit farbou pozadia.
Aspon nejaky typ, ked nie su ziadne napady. |
| |
   |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 936
 | Zaslal: Pi 08.07.11 13:33 |   |
alebo pekne po starom vykreslovanim priamok a pocitanim sin/cos
tak ako som kedysi kreslil v basicu na PMD85
| kód: |
Var t:Integer;
begin
Form1.Canvas.MoveTo(160,200);
for t:= -90 to 90 do begin
Form1.Canvas.LineTo( Trunc(Sin(t*Pi/180)*40)+200,Trunc(cos(t*Pi/180)*20)+200);
end;
Form1.Canvas.MoveTo(160,100);
for t:= -90 to 270 do begin
Form1.Canvas.LineTo( Trunc(Sin(t*Pi/180)*40)+200,Trunc(cos(t*Pi/180)*20)+100);
end;
Form1.Canvas.MoveTo(160,100);
Form1.Canvas.LineTo(160,200);
Form1.Canvas.MoveTo(240,100);
Form1.Canvas.LineTo(240,200);
end;
|
|
| |
  |
 |
Gumeny
 Užívateľ
 Založený: 04.04.2010 Príspevky: 38
 | Zaslal: Pi 08.07.11 13:51 |   |
Tak som sa trochu pohral a nakoniec som to akosi vykreslil - Image1 má rozmery 90x90 pixelov.
| kód: |
Image1.Canvas.Pen.Style := psSolid; //nastavíme štýl na neprerušovaný
Image1.Canvas.Pie( 10, 65, 80, 85, 10, 75, 80, 75 ); //nakreslíme prvú časť podstavy
Image1.Canvas.Pen.Style := psDot; //nastavíme štýl na bodkovaný...
Image1.Canvas.Pie( 10, 65, 80, 85, 80, 75, 10, 75 ); //...a nakreslíme druhú časť podstavy
//cez stred podstavy prechádza ešte jedna nechcená čiara, ktorú prekreslíme bielym perom
Image1.Canvas.Pen.Style := psSolid; //nastavíme štýl na neprerušovaný,
Image1.Canvas.Pen.Color := clWhite; //farbu na bielu
Image1.Canvas.Pen.Width := 2; //a hrubku na 2
Image1.Canvas.MoveTo(9,75); //presunieme pero na správne miesto
Image1.Canvas.LineTo(79,75); //a kreslíme bielu čiaru
//zvyšok je už myslím pohoda
Image1.Canvas.Pen.Color := clBlack;
Image1.Canvas.Pen.Width := 1;
Image1.Canvas.Pen.Style := psSolid;
Image1.Canvas.Ellipse(10,5,80,25);
Image1.Canvas.MoveTo(10,15);
Image1.Canvas.LineTo(10,75);
Image1.Canvas.MoveTo(80,15);
Image1.Canvas.LineTo(80,75); |
| kód: | | http://www.upnito.sk/imggal.php?viewGallery=e7c5223ed5bb23b565269be71ca5e749 |
|
| |
  |
 |
|
Nemôžete pridávať nové témy do tohto fóra. Nemôžete odpovedať na témy v tomto fóre. Nemôžete upravovať svoje príspevky v tomto fóre. Nemôžete mazať svoje príspevky v tomto fóre. Nemôžete hlasovať v tomto fóre.
|
|