-
czoobs
Czesc, czy ktos z was kiedys pisal cos takiego? Nie moge sobie poradzic z tym wykresem, roznych trikoof probowalem ale bez skutku :P Jestem raczej nowicjuszem w Javie. Jak ktos jest w stanie pomoc to zapraszam to wypowiedzi :) -
spec
-
czoobs
ooo wreszcie ktos sie odezwal!; ) Kodu chyba nie ma co wklejac bo nic tam nie ma oprocz instrukcji rysujacych uklad wspolrzednych...reszte usunalem bo byla bez sensu.
Problem jest mianowicie taki:
Teoretycznie arc sin(x) jest ograniczony na dziedzinie <-1,1>, ale w praktyce w moim aplecie odleglosc pomiedzy -1 a 1 to jakies 70. No i teraz powstaje pytanie jak to zrobic zeby wykres byl rzeczywiscie rozciagniety graficznie miedzy -1 a 1, skoro nie mam wartosci np 62 dla arc sin(x). Inne moje problemy to w ogole, przesuniecie srodka ukladu wspolrzednych do punkt w ktorym rzeczywiscie moje osie sie przecinaja ( ale z tym chyba sobie akurat poradzilem ostatnio po prostu do wynikow dodajac odpowiednie liczby, chociaz czuje ze nie wzialem wszystkiego pod uwage :/ )
-
spec
musisz przeskalowac wartosci i albo:
1)w glownej petli dajesz od -70 do +70 dla x
i dzielisz to przez 70 przed podstawieniem do arcsin wtedy masz wartosci znormalizowane od -1 do 1
albo 2)
w glownej petli dajesz od -1 do 1 i krok co 1/70, podstawiasz ta wartosc do arcsin, ale pixel stawiasz w punkcie x * 70 + moj_srodek_wps_na_ekranie
dasz rade tylko pomysl...
-
-
czoobs
yeah, wlasnie uzyskales status mojego guru; ) Teraz to wydaje sie byc takie oczywiste a nie moglem do tego dojsc :P dzieki dzieki dzieki!!! -
czoobs
Dobra, moze sie wydurnie ale really jestem zielony w tym i mam kolejny problem. Wszystko sie zgadza rzeczywiscie, ale chcialem "powiekszyc" ten wykres wiec pomnozylem wartosc y*25 i powiekszylo sie, ale o ile przy najmniejszych wartosciach jest zachowana jednolitosc to juz jak sie zbliza do jedynki wykres staje sie kropkami. Wiem dlaczego tak sie dzieje, zeby nie bylo ze jestem ignorantem matematycznym; ) ale nie wiem jak "zalatac" ten wykres. Wklejam kod ( mizerny, nie smiac sie ):
import java.awt.*;
import java.applet.*;
public class applet5 extends java.applet.Applet
{
int x,y;
float i;
public void paint(Graphics g)
{
g.setColor(Color.white);
g.fillRect(0,0,200,200);
g.setColor(Color.black);
g.drawLine(5,100,195,100);/ / Os OX
g.drawLine(100,5,100,195);/ / Os OY
g.drawLine(195,100,192,97);/ / grot osi OX
g.drawLine(195,100,192,103);
g.drawLine(100,5,97,8);/ / grot osi OX
g.drawLine(100,5,103,8);
g.drawLine(130,98,130,102);
g.drawLine(70,98,70,102);
g.drawString("1",127,120);
g.drawString("-1",60,120);
/ / Rysowanie wykresu
g.setColor(Color.red);
for(i=-30;i<=30;i++)
{
x=(int)(i+100);
y=(int)(-(Math.asin(i/30)*25)+ 100);
g.drawLine(x,y,x,y);
}
}
} -
spec
hej a nie mozesz przechowywac w zmiennych tymczasowych poprzednich wspolrzednych i rysowac linie od poprzednich do biezacych?
wtedy to zalatwi sprawe
zobacz:
int lastX = 70;
int lastY = 50; / /cos w ten desen
for(i=-30;i<=30;i++)
{
x=(int)(i+100);
y=(int)(-(Math.asin(i/30)*25)+ 100);
g.drawLine(lastX,lastY,x,y);
lastX = x;
lastY = y;
}
proste ??
-
czoobs
Hrehre mowilem, ze jestem noobem w tych sprawach; ) Dzieki raz jeszcze!!!
- Przeglądaj grona w kategorii Internet i Komputery
- Przeglądaj grona w okolicy Warszawa
- Załóż własne grono tematyczne
- Zostań moderatorem
Podobne Tematy
|
|
Wszystko co związane z programowaniem w Java (J2EE, JSP, JDBC, itd) test
Miejsca grona (1)
-
Kino Luna ul. Marszałkowska, Warszawa
www.kinoluna.pl kino.luna@maxfilm.com.pl 22 621 78 28
- Dodaj miejsce

