W mojej odpowiedzi na temat transformacji afinicznych zrobiłem kilka ilustracji, które pomogą wyjaśnić.
Jak szybko utworzyć plik PNG z możliwością przesyłania, który wyraża geometryczną lub matematyczną ideę?
To pytanie zostało opracowane w celu wsparcia mojej odpowiedzi na PostScript, ale ma na celu pozyskanie innych rozwiązań, które mogą ogólnie przynieść korzyści sieci SE. Ale dla wiarygodności odpowiedź musi zawierać link do postu, w którym ta technika została faktycznie zastosowana, a także wystarczającą część „howto”, jeśli dotyczy czegoś więcej niż czegoś oczywistego, takiego jak „Wybierz eksport z menu”.
Istnieją dwa meta pytania tutaj i tutaj dotyczące sposobu, w jaki należy rozszerzyć to pytanie w świetle priorytetów, jakie może ustawić dla naszej witryny.
Odpowiedzi:
Używam różnych narzędzi w zależności od konkretnych potrzeb w danym momencie. Mam tendencję do korzystania z bezpłatnych narzędzi, ponieważ nie mam dostępu do takich rzeczy jak Illustrator lub Mathematica.
Do ogólnych celów grafiki wektorowej korzystam z bezpłatnego Inkscape . Działa na plikach .svg i może również renderować je jako wysokiej jakości pliki .pngs lub inne formaty bitmap. Na przykład, oto schemat, który wykonałem w Inkscape, aby wyjaśnić mapowanie UV :
W przypadku wykresów funkcyjnych 2D często używam kalkulatora graficznego online Desmos , który ma przydatną funkcję udostępniania wykresów online, aby inni mogli je przeglądać i modyfikować. Możesz także tworzyć suwaki, które można zmieniać, aby grać z parametrami krzywej w czasie rzeczywistym. Na przykład tutaj jest konfigurowalna funkcja ostrzenia .
Do bardziej skomplikowanych zadań graficznych, które wymagają nieco programowania, używam Maxima , darmowego systemu algebry komputerowej, który również ma funkcje graficzne. Użyłem Maximy do stworzenia wykresów w tej odpowiedzi na temat rozmycia Gaussa :
Było to nieco zbyt skomplikowane dla Desmosa, ponieważ wymagało programowego stworzenia częściowego przybliżenia Gaussa.
Do naprawdę dziwnych zadań graficznych, które nie są dobrze obsługiwane przez nic innego, użyłem Pythona z pakietem svgwrite do programowego generowania diagramów w plikach .svg. Można je w razie potrzeby poprawić w Inkscape i renderować do map bitowych za pomocą Inkscape lub ImageMagick. Użyłem tego przepływu pracy do tworzenia obrazów w tym blogu z dokładnością do głębokości , jak to:
W tym przypadku chciałem nie tylko narysować wykres funkcji, ale programowo i nierównomiernie umieścić znaczniki wzdłuż osi i wykresu, aby zilustrować dyskretne wartości bufora głębokości.
I na koniec, jeśli nic więcej nie wystarczy, użyję Pythona z numpy i poduszką do renderowania obrazów piksel po pikselu. W ten sposób stworzyłem obrazy szumów Perlina w tej odpowiedzi ( w tym przypadku również za pomocą pakietu szumów ).
źródło
Osobiście moim wyborem trucizny jest Adobe Illustrator. Zrobią to również inne aplikacje, takie jak inkscape, Corel Draw, Xara Designer. W skrócie nawet PowerPoint będzie działał. Chociaż nie polecam osobiście programu PowerPoint z powodu poważnych problemów z jego modelem danych, nawet trudna jest prawdopodobnie najbardziej rozpowszechniona aplikacja do rysowania na świecie.
Dobrym pomysłem może być również posiadanie aplikacji graficznej. Osobiście używam do tego Mathematiki, chociaż wiele innych aplikacji też by działało. Lub jeśli chcesz, możesz użyć Wolfram alpha, która jest bezpłatną wersją internetową matematyki.
Oświadczenie: Ponieważ przykłady są moje, a bezwstydne samouznanie przyjmuje się ze szczyptą soli.
Ilustrator
Pierwszą rzeczą, którą powinieneś zrobić w dowolnej aplikacji do rysowania wektorowego, jest włączenie siatki przyciągania . Zmniejsza to żmudność dokładnego umieszczania linii. Jednym z głównych powodów, dla których nie lubię korzystać z Inkscape, jest gorszy sposób implementacji tego przyciągania. PowerPoint faktycznie ma domyślnie przyciąganie do siatki.
Illustrator nie do końca mnie satysfakcjonuje, ponieważ nie spełnia wszystkich moich potrzeb. Ale jak dotąd żadne oprogramowanie tego nie robi (Maya wypełniała tę niszę, ale potem nastąpił autodesk).
Drugim powodem, dla którego wybrałem program Illustrator, jest to, że natywnie rozumie on PostScript. Więc jeśli muszę coś zaprogramować, mogę to zrobić szybko, a istniejące dokumenty aktualizują się, gdy mój kod dojrzewa. Obraz 3 jest wykonywany w ten sposób.
Oto kilka przykładów rysunków, które wykonałem w sieci za pomocą programu Illustrator, głównie za pomocą przyciągania siatki:
Zdjęcie 1 : Jedno z wielu obrazów, które narysowałem w ilustratorze na tej stronie. Uwaga: Jestem dość doświadczonym programem Illustrator (czasami komercyjnym) i według moich standardów jest to bardzo proste.
Obraz marszu w Kręgu jest dość prosty do zrobienia. Po prostu narysuj losowy kształt, klikając. Po tym wyłącz przystawkę i pozwól inteligentnym przewodnikom wykonać pracę za Ciebie. Rysuj linie do najbliższego punktu na linii, twórz okręgi do linii i (usunąłem linie pomocnicze po tym, jak to zrobiłem). Wypłukać i powtórzyć. Po uruchomieniu obszaru roboczego narysowanie obrazu zajęło mi około 3-5 minut.
Obrazek 2 : GD.SE Kontynuacja fali .
Chociaż ten obraz wydaje się bardziej skomplikowany, nie jest on znacznie większy niż pierwszy obraz. Jest to bardziej techniczne, więc oprócz przyciągania siatki I i teraz używając klawisza Shift, aby ograniczyć linie do kątów 45 stopni. Wypełnienia kreskowania można łatwo przypisać do regionów za pomocą narzędzia do tworzenia kształtów programu Illustrator. (przykład użycia konstruktora kształtów , zrzut ekranu)
Zdjęcie 3 : Czasami łatwiej jest zacząć od zera w PostScript. Obrazek dodany odpowiedzieć na ENG.SE .
Wreszcie obraz, który naprawdę łatwiej zrobić, wpisując wartości w PostScript. Jest to stosunkowo łatwe do zrobienia w PostScript. Nadal robiłem typografię w ilustratorze. Chociaż rysowanie tego ręcznie nie jest wielką rzeczą, wolę tego nie robić, ale zrobię to, jeśli będę musiał dokonać oceny za pomocą oka.
Matematyka
Mathematica jest cudowna, jeśli chcesz odkryć coś więcej. Jedyną wadą Mathematiki jest to, że NIE jest tania. Ale może zrobić prawie wszystko szybko. Użyłem Mathematica do niektórych moich zdjęć na podstawie przedmieść .
Jedna z kluczowych kompetencji Mathematicas polega na tym, że łatwo jest tworzyć nawet dość skomplikowane zdjęcia bez większych problemów. Może również łatwo animować prosty obraz w edytorze .
Wyniki na tym samym obrazie, co inni. Zawijanie go w tabeli zgodnie z:
Zdjęcie 4 : Animacja jest prosta do wykonania w edytorze kodu za pomocą Mathematica.
źródło
PostScript + ps2eps + mogrify
Dla odpowiedzi Affine Transformations napisałem bardzo mały program postscriptowy, a następnie zapisałem kilka kopii pod różnymi nazwami i edytowałem każdy z nich, aby wykonać każde inne zadanie: skalować, tłumaczyć, obracać. Na przykład tutaj jest podstawowy,
ident.ps
który nie robi nic, aby zmienić współrzędne między rysunkiem czerwonym a rysunkiem czarnym. Sprawiłem, że czerwone linie są trochę większe i zawsze rysuję je jako pierwsze, więc oba pokazują się ładnie nałożone i widoczne (IMO). Podglądałem za pomocą ghostscript za pomocą polecenia vi (ex):!gs %
. ( wszystkie pliki źródłowe )Następnie użyłem
ps2eps
polecenia zpsutils
do automatycznego obliczenia obwiedniI w końcu użyłem
convert
polecenia imagemagick do stworzenia przyciętych obrazów png. (Nie pomyślałem o szybkim sposobie zautomatyzowania tej części. Edytuj: jak skomentowano, można to zrobić za pomocąmogrify -format png *.eps
. Dzięki, joojaa!)Który produkuje pliki PNG, gotowe do przesłania.
źródło
mogrify -format png *.eps
mogrify
. Dlaps2eps
części automatycznie oblicza (i dodaje) informacje ramki granicznej. Pominięcie tej częściconvert
spowoduje utworzenie pełnowymiarowych obrazówPo prostu używam Powerpoint do tworzenia takich diagramów i działa świetnie, gdy tylko poczujesz się komfortowo z jego podstawowymi prymitywami. Obsługuje wszystkie proste operacje, takie jak obrót, tłumaczenie itp., A najnowsze wersje mają również transformacje ścinania i 3D. Przykłady:
Oto przykład schematu Powerpoint, który przygotowałem dla odpowiedzi.
Aby uzyskać bardziej skomplikowane diagramy, szczególnie w 3D, czasami używam Blendera z materiałami bezcieniowymi. Mogę opracować i pokazać przykłady, jeśli są one odpowiednie dla twojego pytania.
Wygląda na to, że jsfiddle jest tutaj również popularny.
źródło
Nie jest to ostateczny zestaw narzędzi, którego możesz szukać, ale tylko dodatkowe narzędzie, którego sam używam: w przypadku grafiki 3D Blender może się przydać. Zwłaszcza jeśli korzystasz z wtyczki Export_SVG (dostępnej na stronie http://dl.dropbox.com/u/16486113/Blender/archivos/temp/SVG/export_svg.py i http://blenderartists.org/forum/showthread.php? 282824-SVG-skrypt-wyjściowy )
Pozwala to uzyskać obiekty 3D Blendera jako grafikę wektorową w Illustrator lub Inkscape. Uważam, że daje mi to szybki start do tworzenia prostych ilustracji 3D.
Pozwól mi wkleić przykład. (W tym przykładzie używam wielu kolorów, ale oczywiście można to wszystko zrobić czarno-czerwono-na białym).
źródło
Używam Powerpoint i różnych (drogich) pakietów CAD. Napisałem makra programu Powerpoint (kod VBA), aby wykonać specjalne czynności, takie jak narysowanie wielokątów kontrolnych krzywych Beziera. Następnie używam standardowego narzędzia Windows Snipping Tool do robienia zrzutów ekranu. Oto kilka przykładów:
I kilka innych przykładów z Math.SE
Jeden
Dwa
Trzy
Cztery
Pięć
źródło