| | |
| Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Autor | Správa |
---|
Registrovaný: 15.07.13 Prihlásený: 27.05.18 Príspevky: 243 Témy: 42 |
[/code]Zdravím potrebujem potrebujem pomôcť s úlohou z informatiky Napíšte program ktorý pri stlačení tlačidla vykreslí 10 sústredných kružníc s výplňami náhodných farieb, pričom polomer najmenšej má byť medzi 20 a 40 a každá ďalšia má polomer o 10 väčší od predchádzajúcej. Kód: procedure TForm1.Button1Click(Sender: TObject); var x,y,i,r,N:integer; begin Randomize; r:=random(41)+20; N:=r+10*10; For i:=10 downto 1 do begin Image1.Canvas.Brush.Color:=RGBtoColor(Random(255),Random(255),random(255));
end;
end;
Zatiaľ mám toto ale neviem si rady ako mám zapísať tie súradnice tej elipsy keď poznám polomer najväčšej kružnice Ďakujem pekne za pomoc
_________________ PC: MB MSI 970A-G43 CPU AMD FX6300 6*3,50GHt turbo 4,1Ghz GPU Gigabyte r7 370 windforce oc edition 2GB Ram 8GB Kingston fury hyperx 1866Mhz SSD:Kingston SSDNow V300 120GB HDD:Seagete baracuda 1TB 7200rpm HDD2 Samsung HD502HJ 500GB 7200RPM PSU fortron hexa + 500W cpu chladič zalman CNPS5X Performa NOTEBOOK:HP Elitebook 8460p Tablet:Prestigio visconte Quad: Mobil: Microsoft Lumia 640 Dual sim
Auto:Chevrolet camaro 1986 IROC-Z |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 28.09.2015 20:40 | |
|
Noo, to je trošku zábavné. Delphi vie vykresliť elipsu v obdĺžniku, čiže Kód: ellipse( x,y, width,height ) , kde x,y je ľavý horný roh. Ak chceš vykresliť kruh s daným stredom a polomerom, musíš si tieto hodnoty dopočítať. Takže keď máš r, sx, sy (radius a stredový bod), tak: Kód: x = sx - r; y = sy - r; width = 2*r; height = 2*r;
A s týmito hodnotami vykreslíš elipsu, resp. v tvojom prípade kruh (pretože width=height). A kľudne aj 10 sústredných, stačí meniť r.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 15.07.13 Prihlásený: 27.05.18 Príspevky: 243 Témy: 42 |
Kód: x = sx - r; y = sy - r; a toto čo znamená? // Spojený príspevok Pon 28.09.15 21:06a ako to mám všetko zapísať do môjho zdrojáku? // Spojený príspevok Pon 28.09.15 21:14Kód: procedure TForm1.Button1Click(Sender: TObject); var x,y,i,r,N:integer; begin Randomize; r:=random(41)+20; N:=r+10*10; x:=(N*2); y:=(N*2); For i:=10 downto 1 do begin Image1.Canvas.Brush.Color:=RGBtoColor(Random(255),Random(255),random(255)); Image1.Canvas.Ellipse((x-N),(y-N),(x+N),(y+N)); N:=N-10;
end;
end; Takto to môže byť ak nie tak ma kľudne oprav
_________________ PC: MB MSI 970A-G43 CPU AMD FX6300 6*3,50GHt turbo 4,1Ghz GPU Gigabyte r7 370 windforce oc edition 2GB Ram 8GB Kingston fury hyperx 1866Mhz SSD:Kingston SSDNow V300 120GB HDD:Seagete baracuda 1TB 7200rpm HDD2 Samsung HD502HJ 500GB 7200RPM PSU fortron hexa + 500W cpu chladič zalman CNPS5X Performa NOTEBOOK:HP Elitebook 8460p Tablet:Prestigio visconte Quad: Mobil: Microsoft Lumia 640 Dual sim
Auto:Chevrolet camaro 1986 IROC-Z |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 28.09.2015 21:32 | |
|
Tak v prvom rade, na to veľké N sa vyser. Netreba ti to. Úloha je vykresliť 10 sústredných kružníc - tzn. 10 kružníc s rovnakým stredom (sx,sy) a daným polomerom (prvý medzi 20 a 40, každý ďalší o 10 väčší, než predchádzajúci). Takže vytvor program, ktorý vykreslí jednu kružnicu s daným polomerom a stredovým bodom (to som ti napísal, ako). A potom to samotné vykreslenie dáš len do cyklu so zvyšujúcim sa r. Hotovo.
Do tvojho zdrojáku teda stačí pridať to zvyšujúce sa r a vykreslenie kružnice na danom strede s daným r.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 15.07.13 Prihlásený: 27.05.18 Príspevky: 243 Témy: 42 |
a to mám ako spraviť ako a čo konkrétne pridať do môjho zdrojáku?
prosím o trpezlivosť
_________________ PC: MB MSI 970A-G43 CPU AMD FX6300 6*3,50GHt turbo 4,1Ghz GPU Gigabyte r7 370 windforce oc edition 2GB Ram 8GB Kingston fury hyperx 1866Mhz SSD:Kingston SSDNow V300 120GB HDD:Seagete baracuda 1TB 7200rpm HDD2 Samsung HD502HJ 500GB 7200RPM PSU fortron hexa + 500W cpu chladič zalman CNPS5X Performa NOTEBOOK:HP Elitebook 8460p Tablet:Prestigio visconte Quad: Mobil: Microsoft Lumia 640 Dual sim
Auto:Chevrolet camaro 1986 IROC-Z |
|
Registrovaný: 15.06.14 Prihlásený: 26.03.24 Príspevky: 17930 Témy: 142 Bydlisko: Bratislava |
sx, sy su suradnice stredu vsetkych kruznic Downto cyklus vobec nie je potrebny, staci klasicky for i:= 1 to 10... Celu ulohu ti nikto nenapise, vid pravidla: Citácia: Je zakázané zakladať témy na vypracovanie celej vašej úlohy do školy.
_________________ ITX >>> ATX |
|
Registrovaný: 15.07.13 Prihlásený: 27.05.18 Príspevky: 243 Témy: 42 |
áno Ďakujem pekne za rady
_________________ PC: MB MSI 970A-G43 CPU AMD FX6300 6*3,50GHt turbo 4,1Ghz GPU Gigabyte r7 370 windforce oc edition 2GB Ram 8GB Kingston fury hyperx 1866Mhz SSD:Kingston SSDNow V300 120GB HDD:Seagete baracuda 1TB 7200rpm HDD2 Samsung HD502HJ 500GB 7200RPM PSU fortron hexa + 500W cpu chladič zalman CNPS5X Performa NOTEBOOK:HP Elitebook 8460p Tablet:Prestigio visconte Quad: Mobil: Microsoft Lumia 640 Dual sim
Auto:Chevrolet camaro 1986 IROC-Z |
|
| Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
| Nemôžete zakladať nové témy v tomto fóre 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
|
|