Gündelik hayatta okullarda ve eğitim kurumlarında birçok matematiksel kavramı anlayamayız (Belkide biz daha farklı anlıyoruz veya anlatamıyorlar.)Ancak eğitim içerikleri üretmek oldukça maliyetli ve yorucu fakat üzülmeyin ,bugün tanıtacağım python kütüphanesi,Grant Sanderson’ın geliştirdiği,manim kütüphanesi 3Blue1brown kanalının kullandığı matematik anlatımı için kullanılan animasyon motorudur.(3Blue1Brown kanalının içerikleri oldukça güzel izlemenizi tavsiye ederim.).Ayrıca bizlerde bu kütüphaneyi kullanarak oldukça güzel içerikler üretebiliriz .İlk olarak kütüphanenin olduğu repoya gidelim ve birşeyler yapalım, (repo:https://github.com/3b1b/manim) Not: ingilizce seviyeniz iyi ise bu yazı yerine ,repo üzerindende kurulum yapıp birşeyler üretmeye başlayabilirsiniz ancak bu yazı ile işiniz oldukça kolaylaşıcaktır.
KURULUMU
Öncelikle içeriklerinizde matematiksel formüller kullanmak istersek TeX kullanmak durumunda kalacağız fakat korkmayın burada imdadınıza gene ictr ailesi yetişiyor.LaTeX/TeX kullanımı hakkında 2 tane yazımız mevcut part1 ve part2 bu linkler üzerinden erişebilirsiniz.Ben linux kullandığım için linux için kurulumu anlatacağım ancak diğer işletim sistemleri kullanan kullanıcılar repo:https://github.com/3b1b/manim )’ya girerek kurulumları kolaylıkla yapabilirler.Diğer işletim sistemleri içinde sorunlar çıkarsa yorumlar üzerinden sorularınızı lütfen sorun,Şimdi kuruluma geçelim.Deneme amaçlı masaüstünde bir klasörün içinde açıp, onun içerisinde kurulum yapacağız.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#en temel paketleri yükleyelim apt install sox ffmpeg libcairo2 libcairo2-dev #yeni bir klasör açalım mkdir manimtest #klasörü açalım cd manimtest #repository üzerinden direk klon edelim git clone https://github.com/3b1b/manim #manim klasörünü açalım cd manim #sanal ortamı oluşturalım ve active edeli python3 -m venv ./ source bin/activate #ve gerekli paketleri eklesin pip3 install -r requirements.txt #iceriğe bakmak sizin elinizde ls yazmak yada yazmamak size bağlı ls #ve örnek animasyonu çalıştıralım python3 -m manim example_scenes.py SquareToCircle -pl |
görüldüğü üzere ilk animasyonumuz hazır.Ayrıca seçilen animasyonuda oynatabiliriz. Not:buradaki sahneleri oynatmanız aracı daha iyi tanımanızı sağlayacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#Ayrıca seçilen animasyonlarıda seçerek oynatabiliriz. python3 -m manim example_scenes.py -pl Media will be written to ./media/. You can change this behavior with the --media_dir flag. 1: OpeningManimExample 2: SquareToCircle 3: UpdatersExample 4: WarpSquare 5: WriteStuff Choose number corresponding to desired scene/arguments. (Use comma separated list for multiple entries) Choice(s): |
KONSOLDAKİ PARAMETRELER(FLAGLAR)
Bu flagler bizim üretim yaparken çeşitli ayarlamalarımızı konsol üzerinden kolayca yapmamızı sağlayacaktır.
- -p playin kısaltılmasıdır.
- -l düşük çözünürlük(Hızlı bir şekilde üretilmesi)
- -s videonun son karesini gösterir.
- -h help flagı kullanılabilen flagları gösterir.
LATEX VE GEOMETRİ KULLANARAK ANİMASYONLAR GELİŞTİRMEK
İlk olarak manimtest/manim/example_scenes.py dosyasını açıp ufak bir yazı animasyonu hazırlayalım ve kaydedelim.
1 2 3 4 5 |
class Deneme(Scene): def construct(self): tex = TexMobject("deneme") self.add(tex) self.wait() |
1 |
python3 -m manim example_scenes.py Deneme -pl |
Komutunu konsolda yazarak çıktıyı görebiliriz.
Şimdi ise ufak daire ve bir deneme yazısı çizip konumuzu kapatalım.
1 2 3 4 5 6 7 8 9 10 |
class Deneme(Scene): def construct(self): circle = Circle() tex = TexMobject("deneme") self.add(tex) self.play(ShowCreation(circle)) self.play(FadeOut(circle)) self.wait() |
Eğer matematiksel denklemlerle uğraşmak istiyor isek zaten examples_scenes.py dosyası içerisindeki sınıflar içerisinde örnekler mevcut.Örneğin WriteStaff sınıfına ait example_tex değişkeninde mevcut ki latex’in sytnaxini öğrenmek için gerekli kaynaklar eski yazılarımızda part1 ve part2 de mevcuttur.Ayrıca çok daha fazla kaynağa ve araca kaynakçadaki linklerden ulaşabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
class WriteStuff(Scene): def construct(self): example_text = TextMobject( "This is a some text", tex_to_color_map={"text": YELLOW} ) example_tex = TexMobject( "\\sum_{k=1}^\\infty {1 \\over k^2} = {\\pi^2 \\over 6}", ) group = VGroup(example_text, example_tex) group.arrange(DOWN) group.set_width(FRAME_WIDTH - 2 * LARGE_BUFF) self.play(Write(example_text)) self.play(Write(example_tex)) self.wait() |
NOT:AYRICA BİRKAÇ ANİMASYONU ARD ARDA ÇALIŞTIRMAK İSTERSEK
python3 -m manim example_scenes.py OpeningManimExample WriteStuff Deneme -p şeklinde çalıştırmak istediğimiz sınıfları ard arda çalıştırıp videomuzu kaydedebiliriz.
Not: -pl şeklinde yazarsak hızlıca kaydeder fakat kaliteli bir şekilde çıkmaz çünkü -l düşük kalitelidir.
KARŞILAŞILABİLECEK HATALAR
Bireysel olarak karşılaştığım 2 hatayı ilk olarak paylaşmak istiyorum.İlk olarak hatalar ile karşılaşırsanız size çok güzel log kaydı sunuyor,Log kayıtlarına“ manimtest/manim/media/Tex/ “ Dosya yolundan ulaşabilirsiniz.Benim karşılaştığım hatalar ise şunlardı.
- ! LaTeX Error: File
physics.sty' not found , !
- LaTeX Error: File dsfont.sty’ not found.
manimtest/manim/manimlib/tex_template.tex içerisinde 2 paketin tanımlamalarını kaldırarak bu sorunu çözebilirsin.(Çözülmüş olarak aşağıda döküman mevcuttur.)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
\documentclass[preview]{standalone} \usepackage[english]{babel} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{amsmath} \usepackage{amssymb} \usepackage{setspace} \usepackage{tipa} \usepackage{relsize} \usepackage{textcomp} \usepackage{mathrsfs} \usepackage{calligra} \usepackage{wasysym} \usepackage{ragged2e} \usepackage{xcolor} \usepackage{microtype} \DisableLigatures{encoding = *, family = * } %\usepackage[UTF8]{ctex} \linespread{1} \begin{document} YourTextHere \end{document} |
Artık tanıtımımızın sonuna gelelim daha fazla kaynak için yazının kaynakça bölümündeki kaynaklardan yararlanabilir veya yorum olarak yazabilirsiniz ,eğer bir sorunuz olursa mutlaka sorunuz veya beğenmediğiniz şeyleri yorum yaptığınız taktirde düzeltebiliriz.Herkese iyi çalışmalar.
KAYNAKÇA
- https://eulertour.com/docs
- https://github.com/3b1b/manim
- https://talkingphysics.wordpress.com/2019/01/08/getting-started-animating-with-manim-and-python-3-7/