Spojení několika bodů čarou - Small Basic

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Zamčeno
PetrJan
nováček
Příspěvky: 14
Registrován: 17 kvě 2012 18:12

Spojení několika bodů čarou - Small Basic

Příspěvek od PetrJan »

Potřebuji nareslit zahnutou čáru... Mohl by mi někdo poradit, jak spojit ty body čarou? Díky
Naposledy upravil(a) PetrJan dne 22 kvě 2012 19:21, celkem upraveno 1 x.
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7415
Registrován: 23 pro 2010 09:23

Re: Spojení několika bodů čarou

Příspěvek od faraon »

Musíš spočítat jednotlivé body, nebo nepříliš vzdálené body na křivce, a sousední dvojice spojit čarou. Ukázka přímo z příručky: GraphicsWindow.DrawLine(prevX, prevY, x, y)
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
PetrJan
nováček
Příspěvky: 14
Registrován: 17 kvě 2012 18:12

Re: Spojení několika bodů čarou

Příspěvek od PetrJan »

Díky, tak už mi to kreslí parabolu... Ale jak odeberu tu první přímou čáru?

Kód: Vybrat vše

  x[1]=-10
  x[2]=-9
  x[3]=-8
  x[4]=-7
  x[5]=-6
  x[6]=-5
  x[7]=-4
  x[8]=-3
  x[9]=-3
  x[10]=-1
  x[11]=0
  x[12]=1
  x[13]=2
  x[14]=3
  x[15]=4
  x[16]=5
  x[17]=6
  x[18]=7
  x[19]=8
  x[20]=9
  x[21]=10
  For i = 1 To 21
    y[i] = x[i]*x[i]
  EndFor

For i = 1 To 21 
  GraphicsWindow.DrawLine(((x[i]+52)*5), (y[i]*5), ((prewX+52)*5), (prewY*5))
    prewX = x[i]
    prewY = y[i]
EndFor
Díky
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Spojení několika bodů čarou

Příspěvek od CZechBoY »

DrawCurve?

v čem to programuješ? kreslíš? maluješ? řežeš?
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
PetrJan
nováček
Příspěvky: 14
Registrován: 17 kvě 2012 18:12

Re: Spojení několika bodů čarou

Příspěvek od PetrJan »

Small Basic...
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7415
Registrován: 23 pro 2010 09:23

Re: Spojení několika bodů čarou - Small Basic

Příspěvek od faraon »

Takže už jsi přišel na to jak udělat zvětšení a posunutí ;-)

Já bych zkusil ještě trochu jiné řešení:

Kód: Vybrat vše

meritkoX = 30
meritkoY = 3

FOR i = 1 TO 20
    LINE (x(i)*meritkoX+320, 400-y(i)*meritkoY) - (x(i+1)*meritkoX+320, 400-y(i+1)*meritkoY)
NEXT i
Je to v QBasicu, takže tu mám velikost plochy pouze 640*480, a čemu odpovídají příkazy LINE a NEXT si asi domyslíš, stejně jako to, proč tahle smyčka počítá jen do 20... Zvýraznil jsem ti ty body na křivce:
PetrJan.png
PetrJan.png (10.25 KiB) Zobrazeno 949 x
Hádám že ta první čára vychází z levého horního rohu, tedy souřadnic 0,0. Zapomněl jsi do proměnných prevX a prevY vložit nějakou hodnotu, takže jsou v nich zatím nuly. Kdyby to byl jiný jazyk, třeba C, byl by jejich obsah náhodný, podle toho co na místě kde se v paměti nacházejí bylo při jejím minulém použití!
Mohl bys jim před začátkem smyčky přiřadit hodnoty x(1) a y(1), a smyčku počítat až od 2.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
PetrJan
nováček
Příspěvky: 14
Registrován: 17 kvě 2012 18:12

Re: Spojení několika bodů čarou - Small Basic

Příspěvek od PetrJan »

Jo, na to jsem již přišel...
mám přepsané to Vaše do SB, ale ve SB to začíná na souřadnicích [0;0], takže u mě, když to mám posunuté [260;0] a poté až jede na další souřadnice..
dále mám parabolu vzhůru nohama :( vrchol má nahoře...
to je jedno, s dovolením použiji Vaše ření

dále mám dotaz, kam dát osový kříř

Díky moc
Uživatelský avatar
domitea
Tvůrce článků
Příspěvky: 1971
Registrován: 24 čer 2009 19:46
Bydliště: Královehradecký kraj
Kontaktovat uživatele:

Re: Spojení několika bodů čarou - Small Basic

Příspěvek od domitea »

Vypočítat souřadnice středu......
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7415
Registrován: 23 pro 2010 09:23

Re: Spojení několika bodů čarou - Small Basic

Příspěvek od faraon »

To obrácení vzhůru nohama zařídí právě to 400-y(i), tím pádem mám i osu x na souřadnicích (x,400).
Osa y ti stejným způsobem vyjde přesně tam, kam sis posunul nulu na ploše, takže (260,y).
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
PetrJan
nováček
Příspěvky: 14
Registrován: 17 kvě 2012 18:12

Re: Spojení několika bodů čarou - Small Basic

Příspěvek od PetrJan »

Jo, díky moc... Použil jsem Vaši metodu a hotovo.

Kód: Vybrat vše

TextWindow.WriteLine("Zadej číslo funkce, které graf chceš zobrazit:")
TextWindow.WriteLine("1 - y = x^2")
TextWindow.WriteLine("2 - y = x+2")
Znovu:
operace = TextWindow.ReadNumber()

If operace = 1 Then
  x[1]=-10
  x[2]=-9
  x[3]=-8
  x[4]=-7
  x[5]=-6
  x[6]=-5
  x[7]=-4
  x[8]=-3
  x[9]=-3
  x[10]=-1
  x[11]=0
  x[12]=1
  x[13]=2
  x[14]=3
  x[15]=4
  x[16]=5
  x[17]=6
  x[18]=7
  x[19]=8
  x[20]=9
  x[21]=10  
  For i = 1 To 21
    y[i] = x[i]*x[i]
  EndFor

FOR i = 1 TO 20
  GraphicsWindow.DrawLine(x[i]*3+260, 300-y[i]*3, x[i+1]*3+260, 300-y[i+1]*3)
EndFor
  GraphicsWindow.DrawLine(260, 10, 260, 510)
  GraphicsWindow.DrawLine(10, 300, 510, 300) 

ElseIf operace = 2 Then
  GraphicsWindow.DrawLine(260, 10, 260, 510)
  GraphicsWindow.DrawLine(10, 300, 510, 300)
  x[1]=-10
  x[2]=-9
  x[3]=-8
  x[4]=-7
  x[5]=-6
  x[6]=-5
  x[7]=-4
  x[8]=-3
  x[9]=-3
  x[10]=-1
  x[11]=0
  x[12]=1
  x[13]=2
  x[14]=3
  x[15]=4
  x[16]=5
  x[17]=6
  x[18]=7
  x[19]=8
  x[20]=9
  x[21]=10  
  For i = 1 To 21
    y[i] = x[i]+2
  EndFor
  
FOR i = 1 TO 20
  GraphicsWindow.DrawLine(x[i]*15+200, 300-y[i]*15, x[i+1]*15+200, 300-y[i+1]*15)
EndFor

  
 Else
   TextWindow.WriteLine("Špatně, zadej 1 nebo 2") 
   Goto Znovu
EndIf
Ještě jednou díky moc
Zamčeno
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Výpadky spojení Wi-Fi
    od vasekpetr1 » » v Sítě - hardware
    7 Odpovědi
    7732 Zobrazení
    Poslední příspěvek od vasekpetr1

Zpět na „Programování a tvorba webu“