zmany wartości po

0

Mam w programie tablicę dwuwymiarową 100x100, każda komórka jest oznaczona dwoma parametrami (oprócz współrzędnych, oczywiście). Na przekątnej d1 ma się zmieniać pierwsza wartość (100 w punkcie A, 0 w punkcie C), na d2 druga (j/w, 100 w p. B, 0 w p. D). Bynajmniej nie chodzi mi o to, żeby wszystkie komórki wiersza #1 miały wartości 100,100, wiersza #2 wartości 99,99, a raczej o efekt taki jak przy palecie HSV na bazie odcieniu (posiadacze Corela lub. ew innych porządnych programow graficznych pewnie wiedzą o co chodzi). Może to i proste, ale wiedza matematyczna na poziomie 1gim trochę podwyższona praktyką w programowaniu nie wystrczyła mi na wymyślenie czegoś sensownego, co by mogło być wykonane w czasie mniejszym niż pół sekundy...

Rysunek dla tych, którzy mogliby nie wiedzieć o co mi właściwie chodzi:

[code]
A B
+--------+
|\ /|
| \d1 / |
| \ / |
| \/ |
| /\ |
| / \ |
| /d2 \ |
|/ \|
+--------+
D C
[/code]

(trochę go źle wyświetla mimo [ code ], cóż...)
//Już lepiej? Wystarczyło kilka poprawek :d - Marooned

Screena takiej palety HSV może bym wstawił, gdybym miał gdzie dać plik...
//Oto screen: http://www.marooned.neostrada.pl/4prog/pic/colors.jpg
//trochę za duży, aby dać go jako IMG - m.M

Do moderatorów: nie mam zamiaru tego posta edytować - za każdym razem muszę wpisywać temat z powodu " i dopisywać slashe to pseudoobrazka... Prędzej napiszę nowy, pod spodem.

//Ja edytowałem go parę razy i luz. Zamiast za każdym razem klikać na ikonkę edycji, cofaj się w historii przeglądarki - nie będzesz musiał co chwila zamieniać \ na \\ - Marooned

0

A w jaki sposób tablica przechowuje wartość "dwu parametrową" ? Nie rozumiem jaka to tablica, typu INTEGER? np:

[code]var
a:array[1..100]of array[1..100]of integer;
i:integer;

begin
FOR i:=1 TO 100 DO a[i,i]:=i;
end;[/code]

Powyżej napisałem przykład dla jednej przekątnej (d1), napisz o co ci chodzi z tymi "dwoma parametrami"....

0

Ta tablica z dwoma parametrami to może być np. array [0..99, 0..99] of TPoint;, albo jakiegoś innego typu rekordowego :)

0

thenkles: prawie to. Dokładniej:

THPoint = packed record;
Val1, Val2: 0..99;
end;
...
packed array [0..99,0..99] of TTestRecord

"packed" żeby oszczędzać miejsce, chociaż to szczegół, zakresy w tym samym celu, chociaż własciwie TPoint (na upartego TSmallPoint) też może być - po prostu dwie liczby o możliwym zakresie 0..99. No i zmiany mają następować wzdłuż przekątnych (tak jak jasność i nasycenie przy wyświetlaniu kolorów w HSV, z resztą m. in. do tego chcę to zastosować. może jak Marooned wstawi obrazek (właśnie wysyłam) to ktoś wpadnie na jakiś pomysł/znajdzie gotowe rozwązanie)

0

A może łatwiej zrobić po prostu taki obrazek i pobierać kolor pixela?

0

I co jeszcze? zrobić 360 takich obrazków dla każdego odcieniu HSV z osobna? Gdyby to mogło być takie proste, to bym, nie pytał, poza tym nie lubię metod "na sznurek i taśmę klejącą". Corel coś takiego oblicza w mniej niż 100ms więc z całą pewnością jest to w zupełności możliwe.

[do postu niżej]
Ok, dzięki Dryo.

[dopisane jeszcze raz]
Pisałeś to w środku nocy - czy to "jutro" oznacza dzisiaj (19) czy to jutro "faktyczne" (20)?

0

my_nick: ja takie coś mam. Jutro podeślę...

[dopisane]
Sprawdź maila.

I taki szczegół: nie HSV tylko HSL lub HSB. W gotowcu na temat konwersji pisałem chyba o teoretycznej różnicy pomiędzy nimi.

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