Discuss Scratch

AANNTTOONNII
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

W tym poradniku pokażę jak rysować najbardziej podstawowe figury geometryczne w scratchu za pomocą pisaka. Dla każdej omówionej tu figury geometrycznej zrobiłem osobny projekt, w którym zastosowałem gotowy skrypt. Poradnik ten będzie miał też nieco inną formę niż wszystkie napisane przeze mnie do tej pory poradniki. Mianowicie instrukcje dot. rysowania poszczególnych figur umieszczę w osobnych postach dzięki czemu będę mógł umieścić w głównym poście do nich odsyłacze (jest ich bardzo dużo). Wydaje mi się, że pomoże to zachować przejrzystość treści. Napiszcie w komentarzach jakie jest wasze odczucie.

W moim poradniku będę nazywał oś odciętych osią X, a oś rzędnych osią Y.


SPIS TREŚCI:


PROSTOKĄT:

- kwadrat o zadanym boku
- kwadrat o zadanej przekątnej
- kwadrat o zadanym obwodzie
- prostokąt o zadanych dwóch bokach

TRÓJKĄT:

- trójkąt równoboczny o zadanym boku
- trójkąt równoboczny o zadanej wysokości
- trójkąt prostokątny o zadanych przyprostokątnych
- trójkąt prostokątny o zadanej przyprostokątnej i kącie

OKRĄG:

- okrąg o zadanym promieniu i liczbie kątów (właściwie wielokąt)

ELIPSA:

- elipsa o zadanych długościach półosi i kącie
- elipsa o zadanych ogniskach i mimośrodzie

POZOSTAŁE:

- wykres funkcji
- wielokąt foremny o zadanej liczbie i długości boków (przez PL_DkD_PL)

Last edited by AANNTTOONNII (June 28, 2020 08:03:18)

AANNTTOONNII
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

KWADRAT O ZADANYM BOKU


Kwadrat to czworokąt o wszystkich równych kątach. Ma on również wszystkie równe boki i każdy jego kąt ma 90 stopni (te własności wynikają z definicji). Przyjmując n jako długość boku, jego wierzchołki mają w układzie kartezjańskim następujące współrzędne:
[0, 0]
[n, 0]
[n, n]
[0, n]
Żeby narysować w scratchu kwadrat o zadanym boku wystarczy opuścić pisak, a potem “pojechać” do wszystkich wierzchołków po kolei. Oto przykładowy skrypt:
definiuj kwadrat (bok)
idź do x: (0) y: (0)
przyłóż pisak
idź do x: (bok) y: (0)
idź do x: (bok) y: (bok)
idź do x: (0) y: (bok)
idź do x: (0) y: (0)
podnieś pisak

Gotowy skrypt został zastosowany w tym projekcie.

Last edited by AANNTTOONNII (April 25, 2020 14:28:14)

AANNTTOONNII
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

KWADRAT O ZADANEJ PRZEKĄTNEJ


Znając przekątną kwadratu możemy obliczyć jego bok za pomocą twierdzenia pitagorasa. Oznaczmy długość boku przez a, a przekątnej przez p. Wtedy:

Żeby narysować kwadrat o zadanej przekątnej wystarczy więc napierw wyliczyć długość boku dzieląc długość przekątnej przez pierwiastek z dwóch, a następnie stosując skrypt rysujący kwadrat o zadanym boku. Oto przykładowy skrypt:
definiuj kwadrat (przekątna)
ustaw [bok v] na ((przekątna) / ([pierwiastek kwadratowy v] z (2)))
idź do x: (0) y: (0)
przyłóż pisak
idź do x: (bok) y: (0)
idź do x: (bok) y: (bok)
idź do x: (0) y: (bok)
idź do x: (0) y: (0)
podnieś pisak

Gotowy skrypt został zastosowany w tym projekcie.

Last edited by AANNTTOONNII (April 24, 2020 21:29:31)

AANNTTOONNII
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

KWADRAT O ZADANYM OBWODZIE


Znając obwód kwadratu możemy w prosty sposób wyliczyć bok dzieląc go przez cztery (jako, że kwadrat ma cztery równe boki). Żeby narysować kwadrat o zadanym obwodzie wystarczy więc napierw wyliczyć długość boku dzieląc długość przekątnej przez cztery, a następnie stosując skrypt rysujący kwadrat o zadanym boku. Oto przykładowy skrypt:
definiuj kwadrat (obwód)
ustaw [bok v] na ((obwód) / (4))
idź do x: (0) y: (0)
przyłóż pisak
idź do x: (bok) y: (0)
idź do x: (bok) y: (bok)
idź do x: (0) y: (bok)
idź do x: (0) y: (0)
podnieś pisak

Gotowy skrypt został zastosowany w tym projekcie.

Last edited by AANNTTOONNII (April 24, 2020 21:30:57)

AANNTTOONNII
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

PROSTOKĄT O ZADANYCH DWÓCH BOKACH


Prostokąt to czworokąt o dwóch parach boków równoległych. Każdy jego kąt ma 90 stopni (wynikaja to z definicji). Jego szczególnym przypadkiem jest kwadrat. Przyjmując a i b jako długośći jego boków, jego wierzchołki mają w układzie kartezjańskim następujące współrzędne:
[0, 0]
[a, 0]
[a, b]
[0, b]
Żeby narysować w scratchu prostokąt o zadanych bokach wystarczy opuścić pisak, a potem “pojechać” do wszystkich wierzchołków po kolei. Oto przykładowy skrypt:
definiuj prostokąt (a) (b)
idź do x: (0) y: (0)
przyłóż pisak
idź do x: (a) y: (0)
idź do x: (a) y: (b)
idź do x: (0) y: (b)
idź do x: (0) y: (0)
podnieś pisak

Gotowy skrypt został zastosowany w tym projekcie.

Last edited by AANNTTOONNII (April 25, 2020 14:28:50)

AANNTTOONNII
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

TRÓJKĄT RÓWNOBOCZNY O ZADANYM BOKU


Trójkąt równoboczny to trójkąt o trzech równych bokach. Ma on wszystkie kąty równe 60 stopni (wynika to z definicji). Przyjmując a jako długość jego boku, jego wierzchołki mają w układzie kartezjańskim następujące współrzędne:
[0, 0]
[a, 0]
[a/2, sqrt(3) * a / 2]
Współrzędną y ostatniego wierzchołka obliczyłem korzystając z twierdzenia pitagorasa. Zapisałem je dla trójkąta prostokątnego o bokach a/2, a i szukanej długości wysokości i wyprowadziłem wzór na długość wysokości. Żeby narysować w scratchu trójkąt równoboczny o zadanym boku wystarczy opuścić pisak, a potem “pojechać” do wszystkich wierzchołków po kolei. Oto przykładowy skrypt:
definiuj trójkąt równoboczny (bok)
idź do x: (0) y: (0)
przyłóż pisak
idź do x: (a) y: (0)
idź do x: ((a) / (2)) y: ((([pierwiastek kwadratowy v] z (3)) * (bok)) / (2))
idź do x: (0) y: (0)
podnieś pisak

Gotowy skrypt został zastosowany w tym projekcie.

Last edited by AANNTTOONNII (April 25, 2020 14:29:14)

AANNTTOONNII
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

TRÓJKĄT RÓWNOBOCZNY O ZADANEJ WYSOKOŚCI


Znając wysokość w trójkącie równobocznym możemy obliczyć jego bok za pomocą twierdzenia pitagorasa. Można wyprowadzić to w podobny sposób jak wysokość znając bok. Żeby narysować trójkąt równoboczny o zadanej wysokości wystarczy więc napierw wyliczyć długość boku mnożąc długość wysokości przez dwa przez pierwiastek z trzech, a następnie stosując skrypt rysujący trójkąt równoboczny o zadanym boku. Oto przykładowy skrypt:

definiuj trójkąt równoboczny (wysokość)
ustaw [bok v] na ((wysokość) * ((2) / ([pierwiastek kwadratowy v] z (3))))
idź do x: (0) y: (0)
przyłóż pisak
idź do x: (bok) y: (0)
idź do x: ((bok) / (2)) y: (wysokość)
idź do x: (0) y: (0)
podnieś pisak

Gotowy skrypt został zastosowany w tym projekcie.
AANNTTOONNII
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

TRÓJKĄT PROSTOKĄTNY O ZADANYCH PRZYPROSTOKĄTNYCH

Trójkąt prostokątny to trójkąt, który ma kąt prosty. Boki, pomiędzy którymi jest kąt prosty nazywają się przyprostokątnymi, a bok na przeciwko kąta prostego nazywa się naprzeciwprostokątną lub przeciwprostokątną. Przyjmując a i b jako długośći jego przyprostokątnych, jego wierzchołki mają w układzie kartezjańskim następujące współrzędne:
[0, 0]
[a, 0]
[0, b]
Żeby narysować w scratchu trójkąt prostokątny o zadanych przyprostokątnych wystarczy opuścić pisak, a potem “pojechać” do wszystkich wierzchołków po kolei. Oto przykładowy skrypt:
definiuj trójkąt prostokątny (a) (b)
idź do x: (0) y: (0)
przyłóż pisak
idź do x: (a) y: (0)
idź do x: (0) y: (b)
idź do x: (0) y: (0)
podnieś pisak

Gotowy skrypt został zastosowany w tym projekcie.

Last edited by AANNTTOONNII (April 25, 2020 14:29:31)

AANNTTOONNII
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

TRÓJKĄT PROSTOKĄTNY O ZADANEJ PRZYPROSTOKĄTNEJ I KĄCIE


Znając jedną przyprostokątną i kąt pomiędzy nią, a przeciwprostokątną możemy obliczyć wszystkie boki tego trójkąta korzystając z twierdzenia kosinusów (uogólnionego twierdzenia pitagorasa). Oznaczmy długość przyprostokątnej przez a, a kąt przez alfa. Wtedy druga przyprostokątna jest równa a * tg(alfa). Teraz wystarczy użyć skryptu rysującego trójkąt prostokątny o zadanych przyprostokątnych. Oto przykładowy skrypt:
definiuj trójkąt prostokątny (bok) (kąt)
ustaw [bok2 v] na ((bok) * ([tan v] z (kąt)))
idź do x: (0) y: (0)
przyłóż pisak
idź do x: (bok) y: (0)
idź do x: (0) y: (bok2)
idź do x: (0) y: (0)
podnieś pisak

Gotowy skrypt został zastosowany w tym projekcie.
AANNTTOONNII
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

OKRĄG O ZADANYM PROMIENIU I LICZBIE KĄTÓW (WŁAŚCIWIE WIELOKĄT)


Okrąg można narysować na wiele sposobów. Ja postanowiłem opisać tu jak go narysować poprzez wyznaczenie punktów które na nim leżą w równej odległości i połączenie ich. Po pierwsze zauważmy, że punkt, który leży na okręgu pod kątem alfa ma współrzędne:
[cos(alfa) * p, sin(alfa) * p]
gdzie p jest promieniem wspomnianego okręgu. Teraz wyznaczamy kąt o jaki będą różnić się punkty. Jest to:
360 stopni / l_kt
gdzie l_kt jest liczbą kątów. Wybieramy więc na początek alfa = 0 i liczbę kątów razy zwiększamy alfę o 360 stopni / l_kt i rysujemy prostą do następnego punktu (o współrzędnych x = cos(alfa) * p, y = sin(alfa) * p). Oto przykładowy skrypt:
definiuj okrąg (promień) (liczba kątów)
ustaw [alfa v] na [0]
idź do x: (promień) y: (0)
przyłóż pisak
powtórz (liczba kątów) razy
zmień [alfa v] o ((360) / (liczba kątów))
idź do x: (([cos v] z (alfa)) * (promień)) y: (([sin v] z (alfa)) * (promień))
end
podnieś pisak

Gotowy skrypt został zastosowany w tym projekcie.

Last edited by AANNTTOONNII (April 25, 2020 14:29:49)

AANNTTOONNII
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

ELIPSA O ZADANYCH DŁUGOŚCIACH PÓŁOSI I KĄCIE



Podobnie jak w przypadku okręgu, elipsę narysujemy poprzez wyznaczenie punktów które na niej leżą w równej odległości i połączenie ich. Najpierw zauważmy, że punkt, który leży na elipsie pod kątem alfa ma współrzędne:
[cos(alfa) * d_poś, sin(alfa) * m_poś]
gdzie d_poś jest długością wielkiej półosi, a m_poś jest długością małej półosi. Teraz wyznaczamy kąt o jaki będą różnić się punkty. Jest to:
360 stopni / l_kt
gdzie l_kt jest liczbą kątów. Wybieramy więc na początek alfa = 0 i liczbę kątów razy zwiększamy alfę o 360 stopni / l_kt i rysujemy prostą do następnego punktu (o współrzędnych x = cos(alfa) * d_poś, y = sin(alfa) * m_poś). Oto przykładowy skrypt:
definiuj elipsa (d_poś) (m_poś) (kąt) (l_kt)
ustaw [alfa v] na [0]
idź do x: (d_poś) y: (0)
przyłóż pisak
powtórz (liczba kątów) razy
zmień [alfa v] o ((360) / (liczba kątów))
idź do x: (([cos v] z (alfa)) * (d_poś)) y: (([sin v] z (alfa)) * (m_poś))
end
podnieś pisak
Mamy już skrypt, który rysuje elipsę. Chcemy jeszcze narysować tą elipsę pod zadanym kątem. Zamienimy więc wzór:
[cos(alfa) * d_poś, sin(alfa) * m_poś]
na:
[cos(alfa) * cos(beta) * d_poś - sin(alfa) * sin(beta) * m_poś, sin(beta) * cos(alfa) * d_poś + cos(beta) * sin(alfa) * m_poś ]
Skąd wziął się powyższy wzór? Poprzedni wzór rysuje punkt na elipsie pod kontem alfa, teraz chcemy tą elipsę dodatkowo obrócić pod kątem beta. Gdyby ten punkt leżał na okręgu to musielibyśmy go narysować pod kątem alfa + beta. Nie znamy jednak sinusa, ani kosinusa tego kąta. Możemy jednak skorzystać z wzorów przekształcających:
cos(alfa + beta)
na:
cos(alfa) * cos(beta) - sin(alfa) * sin(beta)
i przekształcających:
sin(alfa + beta)
na:
sin(alfa) * cos(beta) + cos(alfa) * sin(beta)
Więc teraz potrafimy obrócić punkt, który leży na okręgu, ale my nie chcemy narysować punktu na okręgu pod kątem alfa + beta tylko punkt na elipsie pod kątem alfa na okręgu pod kątem beta. Dlatego dla kosinusa mnożymy cos(alfa) * cos(beta) przez d_poś, a sin(alfa) * sin(beta) przez m_poś. Teraz wystarczy zaktualizować skrypt tak, żeby używał nowego wzoru. Oto przykład:
definiuj elipsa (d_poś) (m_poś) (kąt) (l_kt)
ustaw [alfa v] na [0]
idź do x: ((([cos v] z (kąt)) * ( ([cos v] z (alfa)) * (d_poś) )) - (([sin v] z (kąt)) * ( ([sin v] z (alfa)) * (m_poś) ))) y: ((([sin v] z (kąt)) * ( ([cos v] z (alfa)) * (d_poś) )) + (([cos v] z (kąt)) * ( ([sin v] z (alfa)) * (m_poś) )))
przyłóż pisak
powtórz (liczba kątów) razy
zmień [alfa v] o ((360) / (liczba kątów))
idź do x: ((([cos v] z (kąt)) * ( ([cos v] z (alfa)) * (d_poś) )) - (([sin v] z (kąt)) * ( ([sin v] z (alfa)) * (m_poś) ))) y: ((([sin v] z (kąt)) * ( ([cos v] z (alfa)) * (d_poś) )) + (([cos v] z (kąt)) * ( ([sin v] z (alfa)) * (m_poś) )))
end
podnieś pisak

Gotowy skrypt został zastosowany w tym projekcie.

Last edited by AANNTTOONNII (April 25, 2020 14:30:14)

AANNTTOONNII
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

ELIPSA O ZADANYCH OGNISKACH I MIMOŚRODZIE


Elipsa to zbiór takich punktów, że suma ich odległości od ognisk jest stała. Mimośród to stosunek długości ogniskowej do długości wielkiej półosi. Ogniskowa z kolei jest połową odległości między ogniskami lub, jak kto woli, odległością pomiędzy środkiem elipsy, a ogniskami. Elipsę o zadanych ogniskach i mimośrodzie narysujemy wyliczając długości obu półosi, oraz kąt nachylenia elipsy i stosując skrypt rysujący elipsę o zadanych długościach półosi i kącie. Na początek wyliczmy ogniskową. Przyda się przy obliczaniu obu półosi. Nie jest to trudne obliczamy ją z twierdzenia pitagorasa:
ustaw [Fr v] na (([pierwiastek kwadratowy v] z ((((x1) - (x2)) * ((x1) - (x2))) + (((y1) - (y2)) * ((y1) - (y2))))) / (2))
Teraz wyliczymy wielką półoś. Wystarczy podzielić ogniskową przez mimośród jak w poniższym skrypcie:
ustaw [d_poś v] na ((ogniskowa) / (mimośród))
Teraz wyliczmy małą półoś. Jest to pierwiastek kwadratowy z wartości bezwzględnej z różnicy kwadratu wielkiej półosi i kwadratu ogniskowej jak w poniższym skrypcie:
ustaw [m_poś v] na ([pierwiastek kwadratowy v] z ([wartość bezwzględna v] z (((d_poś) * (d_poś)) - ((ogniskowa) * (ogniskowa)))))
Pozostało jeszcze obliczenie kąta nachylenia elipsy. Jest to arcus sinus sinusa tego kąta, czyli arcus sinus różnicy pomiędzy współrzędnymi y ognisk podzelonej przez dwa podzielonej przez długość ogniskowej, jak w poniższym skrypcie:
ustaw [kąt v] na ([asin v] z ((((y2) - (y1)) / (2)) / (ogniskowa)))
Mamy już wszystkie wartości. Możemy zastosować skrypt rysujący elipsę o zadanych długościach półosi i kącie. Oto przykładowy skrypt:
definiuj elipsa (x1) (y1) (x2) (y2) (mimośród) (liczba kątów)
ustaw [Fr v] na (([pierwiastek kwadratowy v] z ((((x1) - (x2)) * ((x1) - (x2))) + (((y1) - (y2)) * ((y1) - (y2))))) / (2))
ustaw [d_poś v] na ((ogniskowa) / (mimośród))
ustaw [m_poś v] na ([pierwiastek kwadratowy v] z ([wartość bezwzględna v] z (((d_poś) * (d_poś)) - ((ogniskowa) * (ogniskowa)))))
ustaw [kąt v] na ([asin v] z ((((y2) - (y1)) / (2)) / (ogniskowa)))
ustaw [alfa v] na [0]
idź do x: ((([cos v] z (kąt)) * ( ([cos v] z (alfa)) * (d_poś) )) - (([sin v] z (kąt)) * ( ([sin v] z (alfa)) * (m_poś) ))) y: ((([sin v] z (kąt)) * ( ([cos v] z (alfa)) * (d_poś) )) + (([cos v] z (kąt)) * ( ([sin v] z (alfa)) * (m_poś) )))
przyłóż pisak
powtórz (liczba kątów) razy
zmień [alfa v] o ((360) / (liczba kątów))
idź do x: ((([cos v] z (kąt)) * ( ([cos v] z (alfa)) * (d_poś) )) - (([sin v] z (kąt)) * ( ([sin v] z (alfa)) * (m_poś) ))) y: ((([sin v] z (kąt)) * ( ([cos v] z (alfa)) * (d_poś) )) + (([cos v] z (kąt)) * ( ([sin v] z (alfa)) * (m_poś) )))
end
podnieś pisak

Gotowy skrypt został zastosowany w tym projekcie.

Last edited by AANNTTOONNII (April 25, 2020 14:30:50)

AANNTTOONNII
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

WYKRES FUNKCJI


Wykres funkcji to jedna z najprostszych do narysowania figur geometrycznych opisanych w tym poradniku. Potrzebujemy zdefiniować blok, który ustawia zmienną wynik na wartość wymyślonej przez nas funkcji od x. Dla funkcji f(x) := x^2 + 2x - 81 będzie to taki blok:
definiuj funkcja (x)
ustaw [wynik v] na ((((x) * (x)) + ((2) * (x))) - (81))
Teraz dla każdej współrzędnej x na ekranie zamalowujemy piksel o współrzędnej y odpowiadającej wartości naszej funkcji dla tego x. Oto przykładowy skrypt:
definiuj narysuj wykres
wyczyść
ustaw [index v] na [-240]
funkcja (index) :: custom
idź do x: (index) y: (wynik)
przyłóż pisak
powtórz (480) razy
funkcja (index) :: custom
idź do x: (index) y: (wynik)
zmień [index v] o (1)
end
podnieś pisak
Oczywiście skrypt ten narysuje wykres funkcji w skali 1:1. Można go skalować mnożąc go (np. pomnożenie go przez dwa rozciągnie go dwukrotnie) i przesuwać dodając do niego liczby (np. dodanie do niego dwóch przesunie go o dwa w górę) i przesuwać w drugiej osi (np. zamiana x na x + 2 przesunie go o 2 w lewo).

Gotowy skrypt został zastosowany w tym projekcie.

Last edited by AANNTTOONNII (April 25, 2020 14:30:35)

AANNTTOONNII
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

W końcu skończyłem pisać ten długi poradnik… Wybaczcie, że niektóre posty zrobione są na “odwal się”, ale jest ich strasznie dużo, a z każdym postem zapał malał pewnie tak… dwukrotnie. Na początku wstawiałem obrazki z symbolami matematycznymi… potem już mi się nie chciało… Błędy porawię pewnie za godzinę, albo w ogóle jutro… Idę teraz odpocząć… Możecie mi pomóc pisząc błędy w komentarzach. Wszelka współpraca jest mile widziana. Możecie napisać własny poradnik dot. nie wiem rysowania trójkąta o zadanych bokach, albo rysowania wielokąta foremnego… Nie ma tych obrazków,.. Jest masa błędów… Ale i tak robi wrażenie!
MentolMen
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

że ci się w ogóle chciało
spoko sprawa
od razu można wejść i wziąć skrypt na figurę
fajnie, gdyby ktoś dodał od razu zdjęcie tych figur pod tytułem
nie każdy zna z nazwy figurę, której szuka.
teraz jak tak sobie myślę, to można zrobić projekt w którym w łatwy sposób można by tworzyć figury
stworzyć jakby siatkę kratową i użytkownik zaznaczałby na niej punkty, a program rysowałby figurę, a potem pokazywał skrypt w scratchu do zrobienia takiej figury.
To jest nawet do ogarnięcia, gdyby ktoś miał za dużo wolnego czasu.

edit:
ciekawy sposób na generowanie wykresu funkcji, w sumie nigdy tego nie robiłem, ale nie wpadłbym na takie podejście.

Last edited by MentolMen (April 24, 2020 21:11:15)

AANNTTOONNII
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

MentolMen wrote:

że ci się w ogóle chciało
spoko sprawa
od razu można wejść i wziąć skrypt na figurę
fajnie, gdyby ktoś dodał od razu zdjęcie tych figur pod tytułem
nie każdy zna z nazwy figurę, której szuka.
teraz jak tak sobie myślę, to można zrobić projekt w którym w łatwy sposób można by tworzyć figury
stworzyć jakby siatkę kratową i użytkownik zaznaczałby na niej punkty, a program rysowałby figurę, a potem pokazywał skrypt w scratchu do zrobienia takiej figury.
To jest nawet do ogarnięcia, gdyby ktoś miał za dużo wolnego czasu.

edit:
ciekawy sposób na generowanie wykresu funkcji, w sumie nigdy tego nie robiłem, ale nie wpadłbym na takie podejście.
Kiedy zaczynałem pisać ten poradnik myślałem, że zrobię drugi dla generowania skomplikowanych figur (krzywa beziera itp.). Teraz wiem, że na pewno go nie zrobię. Uwierz mi. Jeśli myślisz, że napisanie takiego czegoś to dużo roboty… to nawet nie wiesz jak bardzo dużo. Tego się nie pisze w 15 minut. 15 minut zajęło mi uploadowanie (limit jednego postu na minutę…). Projekt o którym pisałeś to SAMOBÓJSTWO!

PS:
Jak ci się podoba pomysł z podzieleniem poradnika na posty?
MentolMen
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

Tak, spoko rozwiązane to jest (podzielenie na posty)
ja wiem, robienie takich rzeczy to masa roboty, nawet do podstawowych figur, nie mówiąc już o jakichś bardziej skomplikowanych.
Szacun, bo widzę, że to jest to dobrze zrobione z wieloma parametrami. Szkoda, że nie zrobiłeś tego wcześniej, bo jak potrzebowałem rysować owal, to nikt tego nie miał i zmarnowałem parę godzin.
AANNTTOONNII
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

Owala w tym poradniku nie mam. Mam elipsę, która jest szczególnym przypadkiem owala, ale owal jest ogólnie znacznie bardziej skomplikowaną figurą. Zobacz w wikipedii.
MentolMen
Scratcher
1000+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

AANNTTOONNII wrote:

Owala w tym poradniku nie mam. Mam elipsę, która jest szczególnym przypadkiem owala, ale owal jest ogólnie znacznie bardziej skomplikowaną figurą. Zobacz w wikipedii.
ta
szukałem owala, ale jednak zrobiłem elipse
ale robiłem to na chama, bez żadnej matematyki. ale działa, także jest git xD
PL_DkD_PL
Scratcher
100+ posts

Rysowanie podstawowych figur geometrycznych przy pomocy pisaka

WIELOKĄT FOREMNY O ZADANEJ LICZBIE BOKÓW I DŁUGOŚCI BOKÓW

Najpierw zacznijmy od wzoru na wielkość kątów w wielokącie foremnym:
180 - 360/n
Jeśli chcemy narysować trójkąt to n będzie 3. Kiedy narysujemy kąt obracając duszka o 180/3 (60) stopni wyjdzie kąt 120… Jeśli zmienimy działanie na
180 - (180 - 360/n)
czyli
360/n
to wyjdzie 120. Kiedy narysujemy kąt obracając duszka o 120 stopni otrzymamy kąt 60 stopni!

Teraz skoro znamy wielkość kątu czas na skrypt.
definiuj wielokąt (boki) (długość)
idź do x: (0) y: (0)
ustaw kierunek na (90 v)
przyłóż pisak
powtórz (boki) razy
obróć w prawo o ((360) / (boki)) stopni
przesuń o (długość) kroków
end
podnieś pisak
Gotowy skrypt został zastosowany w tym projekcie. Tutaj również jest rysowany prostokąt pokazany w jednym ze wcześniejszych poradników.

Last edited by PL_DkD_PL (June 27, 2020 19:38:41)

Powered by DjangoBB

Standard | Mobile