Wyzwanie:
Narysuj Sri Yantrę .
Jak:
Można to narysować na różne sposoby. Wszystkie zawierają wiele kroków. Jeśli uważasz, że możesz go narysować bez wykonywania powiązanych kroków, przewiń poniżej elementy, które musisz mieć na rysunku .
Pełne kroki można znaleźć tutaj:
http://www.saralhindi.com/Shri_Yantra/makingsky14steps_eng.htm
( Nie skopiowałem ich tutaj, ponieważ byłoby to bardzo długie pytanie , oto lustro archieve.org na wypadek, gdyby pierwszy link kiedykolwiek spadł )
Ostateczne zdjęcie powinno wyglądać jak na zdjęciu poniżej:
Muszę mieć:
Zasadniczo każda wybrana metoda rysowania byłaby prawidłową odpowiedzią, pod warunkiem zachowania najważniejszych elementów
Liczba trójkątów powinna być taka sama jak na powyższym obrazku (43 mniejsze trójkąty wynikały z przeplotu większych 9 trójkątów)
Te potrójne skrzyżowania są przestrzegane:
Czubki trójkątów skierowanych w górę dotykają podstaw 4 trójkątów skierowanych w dół, a końce trójkątów skierowanych w dół powinny dotykać podstaw 3 trójkątów skierowanych w górę, jak pokazano na poniższej ilustracji.
Wewnętrzne koło (bindu) jest koncentryczne z zewnętrznym okręgiem.
Końce (wierzchołki) większych trójkątów powinny dotykać zewnętrznego koła:
Ostateczny obraz powinien zawierać wszystkie elementy i ogólnie powinien wyglądać następująco:
Kolor powinien być mniej więcej taki sam jak powyższy obraz dla każdego elementu (w tym płatków).
Kształt płatków powinien najlepiej wyglądać mniej więcej tak, jak na poniższym obrazku, ale może być również tylko półkolem lub prostym łukowym okręgiem:
Nie ma ścisłych ograniczeń proporcji do okręgów ani wielkości bram, ale najbardziej zewnętrzny okrąg powinien mieć średnicę nie mniejszą niż 90% boku zewnętrznego kwadratu, pozostałe elementy byłyby odpowiednio ustawione względem tych proporcji.
Języki programowania i wyniki
Nie ma ograniczeń co do języka programowania ani formatu wyniku (może to być obraz wektorowy, obraz bitmapowy, płótno itp.), Pod warunkiem, że wynik jest względnie jasny i widoczny (co najmniej 800px X 800px)
Późniejsza edycja: Nie ma doskonałej metody rysowania, ponieważ ten blog tak dobrze je odkrywa: http://fotthewuk.livejournal.com/ Biorąc to pod uwagę, niewielkie błędy będą tolerowane.
W tym momencie jest to interesujące ćwiczenie, aby dowiedzieć się, że jest bardzo prawdopodobne, że nie ma idealnego rozwiązania, podobnie jak kwadrat kwadratu.
źródło
Odpowiedzi:
Mathematica -
28362536 znakówRozgryzienie kombinacji regionów, w których małe trójkąty są dostępne do kolorowania, było trochę zawrotne.
The Frame
Obiekty ramki to nierówności, które opisują jako regiony. Np. Czerwony i żółty przegrzebek to dwa regiony kół.
Następnie jest dysk do ukrycia niektórych kręgów, które zostały użyte do wykonania przegrzebka.
The Innards
Niektóre definicje wierzchołków i trójkątów. Każdy trójkąt, t1, t2, ... jest odrębnym regionem. Operacje logiczne (
RegionUnion
.RegionIntersection
IRegionDifference
) na dużych trójkątach służą do definiowania mniejszych trójkątnych komórek jako regionów pochodnych, które można indywidualnie pokolorować.Złożenie części razem
Grał w golfa
źródło
Delphi [Prace w toku]
Ten jest naprawdę trudny.
Do tej pory mam tylko wewnętrzny okrąg z trójkątami, a mój kod jest ogromny.
Nie policzyłem jeszcze postaci, wiem, że mogę dużo zaoszczędzić na białych znakach itp.
Najpierw
Zrobiłem klasę TD T jest domyślnym prefiksem klasy, który nie jest obowiązkowy, ale ułatwia zobaczenie jego klasy, D oznacza Draw.
Zrobiłem też
TP
typ, nie, nie, ponieważ są to moje inicjały, ale są krótsze niżTPoint
i pomyślałem, że wykorzystam wiele punktów.właściwość
C
jest punktem środkowym obszaru roboczego.Procedury:
StartDrawing
(do zmiany nazwy) odpala dla mnie wszystkie funkcje rysowania.tr
powoduje, że wszystkie trójkąty w okręgu (w tym samo koło)ft
pokolorują wszystkie trójkąty.Zrobiłem też kilka stałych dla prawdy i fałszu, przesunięcia i wielkości koła.
Funkcje i procedury
Q
zwróci punkt, w którym 2 linie przecinają się / przecinają.Istnieje wiele zagnieżdżonych funkcji / procedur. Nie mam ochoty wyjaśniać ich wszystkich, ale jeśli zastanawiasz się, o co zawsze możesz zapytać.
Ukończ klasę
Wynik do tej pory: (Tak, wiem, że linie nie wszędzie są idealne. Nie mogę znaleźć problemu :()
Nie wiem dlaczego, ale trójkąty nie pokazują ich konturów. Ale robią to na moim zapisanym bmp.
źródło