Discuss Scratch
- Filip_Brajczewski
- Scratcher
100+ posts
czujnik koloru
Chcę zrobić w scratchu coś co w tłumaczeniu by brzmiało: Jeżeli dotyka koloru z przedziału od (…) do (…)?
czy to jest możliwe?
czy to jest możliwe?
░░░░░░░░░░░░░░░░░░░░
░▄▀▄▀▀▀▀▄▀▄░░░░░░░░░
░█░░░░░░░░▀▄░░░░░░▄░
█░░▀░░▀░░░░░▀▄▄░░█░█
█░▄░█▀░▄░░░░░░░▀▀░░█
█░░▀▀▀▀░░░░░░░░░░░░█
█░░░░░░░░░░░░░░░░░░█
█░░░░░░░░░░░░░░░░░░█
░█░░▄▄░░▄▄▄▄░░▄▄░░█░
░█░▄▀█░▄▀░░█░▄▀█░▄▀░
░░▀░░░▀░░░░░▀░░░▀░░░
- AANNTTOONNII
- Scratcher
1000+ posts
czujnik koloru
Chcę zrobić w scratchu coś co w tłumaczeniu by brzmiało: Jeżeli dotyka koloru z przedziału od (…) do (…)?
czy to jest możliwe?
Nie bo to nie ma sensu. Tzn. Kolory nie są w jakiś “naturalny” sposób ułożone na osi więc zależałoby to od tego jak je ułożysz. Blok
<dotyka koloru [#601265] ?>wykrywa nie tylko dotknięcie tego koloru, ale także kolorów bardzo podobnych. Nie wiem jaka jest dokładność, ale implementacja czegoś takiego może nie być taka trudna jak ci się wydaje. Tzn. wystarczy np. 10 if-ów zamiast 500.
- artur32123
- Scratcher
100+ posts
czujnik koloru
Chcę zrobić w scratchu coś co w tłumaczeniu by brzmiało: Jeżeli dotyka koloru z przedziału od (…) do (…)?
czy to jest możliwe?
Nie bo to nie ma sensu. Tzn. Kolory nie są w jakiś “naturalny” sposób ułożone na osi więc zależałoby to od tego jak je ułożysz. Blok<dotyka koloru [#601265] ?>wykrywa nie tylko dotknięcie tego koloru, ale także kolorów bardzo podobnych. Nie wiem jaka jest dokładność, ale implementacja czegoś takiego może nie być taka trudna jak ci się wydaje. Tzn. wystarczy np. 10 if-ów zamiast 500.
U mnie akurat jak mam np.
<dotyka koloru [#000000] ?>to mi czarnego nie wykrywa
- Filip_Brajczewski
- Scratcher
100+ posts
czujnik koloru
rozumiem::null
░░░░░░░░░░░░░░░░░░░░
░▄▀▄▀▀▀▀▄▀▄░░░░░░░░░
░█░░░░░░░░▀▄░░░░░░▄░
█░░▀░░▀░░░░░▀▄▄░░█░█
█░▄░█▀░▄░░░░░░░▀▀░░█
█░░▀▀▀▀░░░░░░░░░░░░█
█░░░░░░░░░░░░░░░░░░█
█░░░░░░░░░░░░░░░░░░█
░█░░▄▄░░▄▄▄▄░░▄▄░░█░
░█░▄▀█░▄▀░░█░▄▀█░▄▀░
░░▀░░░▀░░░░░▀░░░▀░░░
- PMJ_Studio
- Scratcher
100+ posts
czujnik koloru
U mnie akurat jak mam np.<dotyka koloru [#000000] ?>to mi czarnego nie wykrywa
Kolory w Scratchu nie działają zbyt dobrze
Przy rysowaniu ustawiasz kolory w systemie HSV
Blok wykrywania prawdopodobnie działa w RGB, ale też ustawiasz w HSV.
Miejsc na niedokładności jest dużo:
- ręczne ustawianie przy rysowaniu
- HSV -> RGB w kostiumie
- ręczne ustawianie w bloku wykrywania
- HSV -> RGB w bloku wykrywania
- wykrywanie koloru
RGB (Red, Green, Blue) - czerwony, zielony i niebieski w skali 0-255 - 16 581 375 możliwych kolorów.
HSV (Hue, Saturation, Value) - kolor, nasycenie i jasność w skali 0-100 - 1 000 000 możliwych kolorów.
Ale to też nie jest takie proste. W skali HSV nasycenie i jasność są w skali 0-100, a kolor 0-360.
Jednak suwak koloru w Scratchu działa w skali 0-100 i potem przelicza na 0-360. Właśnie dlatego często kolor jest o 1 inny niż ustawiony.
3D graphics, advanced physics - sailing, driving, ski jumping; cloud multiplayer and storage, automated map role-play engine
_________________________________
Pro . . . . . . | 3D rendering, code optimisation, high-level physics simulations, custom blocks, all kinds of math, pen
Amateur . . | clones, data storage in variables&lists, UI design, cloud data storage, sound
Beginner . . | animations, graphics, gameplay, cloud multiplayer
- HappyCat460
- Scratcher
500+ posts
czujnik koloru
Nie o to mu chodzi<czy kolor [#608c99] dotyka [#3d83a8] ?>
- AANNTTOONNII
- Scratcher
1000+ posts
czujnik koloru
<czy kolor [#608c64] dotyka [#3d83a8] ?>
Nie ma takiego bloku.
- paczekwmasle
- Scratcher
500+ posts
czujnik koloru
jest w sekcji czujniki<czy kolor [#608c64] dotyka [#3d83a8] ?>
Nie ma takiego bloku.
bez czy w opisie, ale to raczej to samo
Last edited by paczekwmasle (May 22, 2020 12:27:26)
podpisano @paczekwmasle
- AANNTTOONNII
- Scratcher
1000+ posts
czujnik koloru
jest w sekcji czujniki
bez czy w opisie, ale to raczej to samo
Masz rację. Nie kojarzyłem tego bloku. I tak nie radziłbym tego używać. Implementacja to musi być jakiś syf.
- HappyCat460
- Scratcher
500+ posts
czujnik koloru
jest<czy kolor [#608c64] dotyka [#3d83a8] ?>
Nie ma takiego bloku.
- PMJ_Studio
- Scratcher
100+ posts
czujnik koloru
Blok jest,
Nawet jeżeli uda się ustawić dobry kolor, to i tak raz działa a raz nie… Trzeba by przetestować na ile to jest dokładne.
<czy kolor [#d06a34] dotyka [#89a9d5] ?>ale znowu problem jest z kolorami w Scratchu.
Nawet jeżeli uda się ustawić dobry kolor, to i tak raz działa a raz nie… Trzeba by przetestować na ile to jest dokładne.
3D graphics, advanced physics - sailing, driving, ski jumping; cloud multiplayer and storage, automated map role-play engine
_________________________________
Pro . . . . . . | 3D rendering, code optimisation, high-level physics simulations, custom blocks, all kinds of math, pen
Amateur . . | clones, data storage in variables&lists, UI design, cloud data storage, sound
Beginner . . | animations, graphics, gameplay, cloud multiplayer
- AANNTTOONNII
- Scratcher
1000+ posts
czujnik koloru
jest
Już dawno napisał to @paczekwmasle
Blok jest,<czy kolor [#d06a34] dotyka [#89a9d5] ?>ale znowu problem jest z kolorami w Scratchu.
Nawet jeżeli uda się ustawić dobry kolor, to i tak raz działa a raz nie… Trzeba by przetestować na ile to jest dokładne.
Też już pisałem:
Masz rację. Nie kojarzyłem tego bloku. I tak nie radziłbym tego używać. Implementacja to musi być jakiś syf.
- HappyCat460
- Scratcher
500+ posts
czujnik koloru
Chodziło mu o to:?Nie o to mu chodzi<czy kolor [#608c99] dotyka [#3d83a8] ?>
Chcę zrobić w scratchu coś co w tłumaczeniu by brzmiało: Jeżeli dotyka koloru z przedziału od (…) do (…)?
czy to jest możliwe?
- Antek_W
- Scratcher
500+ posts
czujnik koloru
owszem. jest to możliwe. wystarczy stworzyć trzy zmienne R G i B (to od angielskich Red Green i Blue)
póżniej stworzyć blok:
póżniej stworzyć blok:
definiuj znajdz kolorInnego sposobu nie ma. Ale i tak to będzie trwało wieki (czyli tyle samo co tworzenie przeze mnie tego scryptu).
ustaw [R v] na (0)
ustaw [G v] na (0)
ustaw [B v] na (0)
powtórz (255) razy
powtórz (255) razy
powtórz (255) razy
jeżeli <dotyka koloru ((R) + (((G) * (255)) + ((B) * (65 025))))> to
zatrzymaj [ten skrypt v]
end
zmień [R v] o (1)
end
zmień [G v] o (1)
end
zmień [B v] o (1)
end
definiuj dotyka kolor od R (r) G(g) B(b) do R(r2) G(g2) B(b2)
jeżeli <<(R) > (r)> i <(R) < (r2)>> to
jeżeli <<(G) > (g)> i <(G) < (g2)>> to
jeżeli <<(B) > (b)> i <(B) < (b2)>> to
odpowiedz tak.
end
end
end
- Filip_Brajczewski
- Scratcher
100+ posts
czujnik koloru
ale można to wykonać bez odświeżania ekranu. Innego sposobu nie ma. Ale i tak to będzie trwało wieki (czyli tyle samo co tworzenie przeze mnie tego scryptu).
Last edited by Filip_Brajczewski (June 14, 2020 13:23:00)
░░░░░░░░░░░░░░░░░░░░
░▄▀▄▀▀▀▀▄▀▄░░░░░░░░░
░█░░░░░░░░▀▄░░░░░░▄░
█░░▀░░▀░░░░░▀▄▄░░█░█
█░▄░█▀░▄░░░░░░░▀▀░░█
█░░▀▀▀▀░░░░░░░░░░░░█
█░░░░░░░░░░░░░░░░░░█
█░░░░░░░░░░░░░░░░░░█
░█░░▄▄░░▄▄▄▄░░▄▄░░█░
░█░▄▀█░▄▀░░█░▄▀█░▄▀░
░░▀░░░▀░░░░░▀░░░▀░░░