[Delphi] Obliczanie drugiej współrzędnej w TChart

Odpowiedz Nowy wątek
2006-08-29 15:25
0

Witam

Chciałbym się dowiedzieć czy mając wykres/serie w TChart, która ma np. dwa punkty P1(1, 1) oraz P2(5, 5), (gdzie P(x,y)), można uzyskać informacje o wartości y podając watość x i odwrotnie ? Przykład : Chce uzyskać informację jaką wartość y ma dana seria gdy jej wartość x = 3.

Pozdrawiam

Pozostało 580 znaków

2006-08-29 15:59
0

ale zauważ, że jest "dużo" wzorów funkcji, które przechodzą przez dwa punkty więc strzelanie jaki jest trzeci należący do tego wykresu to loteria


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2006-08-29 16:19
0

to jest prosta więc jeśli przechodzi przez P(1,1) i P(5,5) to na pewno też przez P(2,2),P(3,3); itd. Żadna loteria.

Pozostało 580 znaków

2006-08-29 16:40
0

to jak wiesz, że to prosta to co za problem obliczć x mając y?


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2006-08-29 17:18
0

Nie dokończyłem edycji poprzedniego postu bo mnie rozłączyło.
"To jest prosta więc jeśli przechodzi przez P(1,1) i P(5,5) to na pewno też przez P(2,2),P(3,3); itd.
A swoją drogą to chodzi mi o to że jeżeli wykres istnieje (jakikolwiek, nie koniecznie prosta) czy delfi ma taką funkcje jeśli podamy X pokaże nam jaka wartość jest pod Y ? Jak w bazach danych
select y when x = 3; albo coś w tym guście :
'Get Series[i].YValue when XValue = 3;' "
Pozdrawiam

Pozostało 580 znaków

2006-08-29 17:30
0

żeby można to obliczyć trzeba znać wzór funkcji, która ten wykres rysuje - przecież to matematyka na poziomie gimnazjum.
mając kilka punktów można taki wzór napisać i jest on tym dokładniejszy im więcej jest punktów. Działanie to to interpolacja


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2006-08-29 17:38
0

Wiem jak to obliczyć matematycznie po prostu interesuje mnie to czy można otrzymać y podając x. Każdy element w serii (dwuwymiarowej) ma przecież dwie wspórzędne (x,y). I one są już umieszczone na wykresie, więc jakakolwiek będzie ta krzywa zawsze punkt przez który przechodzi to x i y. Każdy x będzie miał tylko jedną wartość y taką jak jest określona przez oś y. Czy delphi z wykresu może mi ją zwrócić ??

Pozostało 580 znaków

2006-08-29 17:51
0

Poczytaj też o regresji liniowej. Kiedyś w TP napisałem coś takiego:

PROCEDURE RegLin(DBx, DBy :ARRAY OF Double; VAR A, B :Double);
VAR SigX, SigY       :Double; { sumy liczb              }
    SigXY            :Double;
    SigSqrX          :Double;
    n, i             :Word;   { liczba elementow tablic }
BEGIN
 n := High(DBx)+1; { okreslam liczbe elementow }
 SigX := 0; SigY := 0;
 SigXY := 0;
 SigSqrX := 0;
 FOR i := 0 TO n-1 DO
  BEGIN
   SigX := SigX + DBx[i];
   SigY := SigY + DBy[i];
   SigXY := SigXY + (DBx[i]*DBy[i]);
   SigSqrX := SigSqrX + Sqr(DBx[i]);
  END;
 A := (n*SigXY - SigX*SigY) / (n*SigSqrX - Sqr(Sigx));
 B := 1/n * (SigY - A*SigX);
END;
 
FUNCTION Interpolacja(X1,Y1, X2,Y2, X :Double) :Double;
{ interpolacja liniowa }
VAR a, b :Double;
BEGIN
 { wspolczynnik kierunkowy prostej }
 a:=(Y2 - Y1) / (X2 - X1);
 { parametr b }
 b:=((-X1) * (Y2 - Y1) - (X2 - X1) * (-Y1)) / (X2 - X1);
 Interpolacja := A * X + b;
END;

<span style="color: blue">"Kolarstwo to jedna z najtrudniejszych dyscyplin sportu. Nawet najgorszy kolarz jest wciąż wybitnym sportowcem."
s.p. Marco Pantani
</span>

Pozostało 580 znaków

2006-08-29 22:06
0

Niezupełnie o to mi chodziło. Ale rozumiem że nie ma prostszego sposobu na odczytanie danej z wykresu.

Jeszcze jedno pytanie czy w zdarzeniu OnClickSeries można uzyskać index serii na którą się 'kliknie' ?

Pozdrawiam.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0