Skip to main content

افزونه‌ی مانیم برای نمایش متن فارسی (راست به چپ) با قابلیت تبدیل خودکار از حروف لاتین به فارسی

Project description

🎬 manim-fa

افزونه‌ی مانیم برای نمایش دادن متن فارسی (راست به چپ) با قابلیت تبدیل خودکار آوانگاری از فنگلش به فارسی.

نحوه نصب پلاگین

pip install manim_fa

یا برای نصب محلی (در حالت توسعه):

pip install -e .

💡 مثال‌های آموزشی

🔹 مثال ۱ — متن ساده

from manim import *
from manim_fa import FaText

class SimpleDemo_01(Scene):
    def construct(self):
        t = FaText("به مانیم فارسی خوش آمدید!", font_size=50)
        self.play(Write(t))
        self.wait(1)

🔹 مثال ۲ — متن رنگی

from manim import *
from manim_fa import FaText

class SimpleDemo_02(Scene):
    def construct(self):
        t = FaText("به مانیم خوش آمدید. متن رنگی!", color=YELLOW, font_size=60)
        self.play(Write(t))
        self.wait(1)
        self.play(t.animate.set_color(RED))
        self.wait(1)

🔹 مثال ۳ — راست‌چین و با فونت سفارشی

from manim import *
from manim_fa import FaText

class SimpleDemo_03(Scene):
    def construct(self):
        t = FaText("نوشتن خط نستعلیق در مانیم", font="IranNastaliq", rtl=True)
        self.play(Write(t))
        self.wait(2)

🔹 مثال ۴ — تبدیل لاتین به فارسی (ترانسلیت)

from manim import *
from manim_fa import FaText

class SimpleDemo_04(Scene):
    def construct(self):
        t = FaText("Ba Manim khosh Amadid", translit=True, color=BLUE)
        self.play(Write(t))
        self.wait(2)

🔹 مثال ۵ — انیمیشن‌های ترکیبی

from manim import *
from manim_fa import FaText

class SimpleDemo_05(Scene):
    def construct(self):
        t = FaText("حرکت، رنگ، چرخش!", font_size=55)
        self.play(Write(t))
        self.wait(1)
        self.play(t.animate.shift(UP))
        self.play(t.animate.scale(1.5))
        self.play(t.animate.rotate(PI / 4))
        self.play(t.animate.set_color(GREEN))
        self.wait(2)

🌀 فهرست کامل انیمیشن‌های کاربردی در Manim

نام انیمیشن کاربرد مثال
Write() نوشتن تدریجی متن self.play(Write(t))
Create() رسم کامل یک شیء از ابتدا self.play(Create(circle))
FadeIn() ظاهر شدن تدریجی شیء self.play(FadeIn(t))
FadeOut() محو شدن تدریجی شیء self.play(FadeOut(t))
FadeToColor() تغییر رنگ شیء با انیمیشن نرم self.play(FadeToColor(t, RED))
Transform() تبدیل یک شیء به شیء دیگر self.play(Transform(t1, t2))
ReplacementTransform() جایگزینی تدریجی یک شیء با دیگری self.play(ReplacementTransform(t1, t2))
Rotate() چرخش شیء به اندازه مشخص self.play(Rotate(t, angle=PI/2))
ScaleInPlace() بزرگ یا کوچک شدن در محل فعلی self.play(t.animate.scale(1.5))
MoveAlongPath() حرکت شیء روی مسیر مشخص self.play(MoveAlongPath(t, circle))
Circumscribe() ترسیم حاشیه دور شیء self.play(Circumscribe(t))
GrowFromCenter() رشد شیء از مرکز self.play(GrowFromCenter(t))
ShrinkToCenter() جمع شدن شیء به مرکز self.play(ShrinkToCenter(t))
Wiggle() لرزش یا تکان نرم self.play(Wiggle(t))
FocusOn() فوکوس با تغییر نور یا رنگ self.play(FocusOn(t))
Flash() درخشش سریع در محل شیء self.play(Flash(t))
Indicate() نمایش تأکید با رنگ و مقیاس self.play(Indicate(t))
ApplyWave() حرکت موجی روی شیء self.play(ApplyWave(t))
ApplyMethod() اجرای متد خاص روی شیء self.play(ApplyMethod(t.shift, UP))
animate.shift() جابه‌جایی شیء self.play(t.animate.shift(UP))
animate.set_color() تغییر رنگ شیء self.play(t.animate.set_color(BLUE))
animate.rotate() چرخش با انیمیشن نرم self.play(t.animate.rotate(PI/3))

🧭 مثال پیشرفته (ترکیب چند انیمیشن)

from manim import *
from manim_fa import FaText

class ComplexDemo(Scene):
    def construct(self):
        # --- 1️⃣ نمایش متن خوش‌آمد ---
        text1 = FaText("به مانیم فارسی خوش آمدید.", font_size=48, color=BLUE)
        text1.to_edge(UP)
        self.play(Write(text1))
        self.wait(1)

        # --- 2️⃣ نمایش جمله دوم ---
        text2 = FaText("این یک مستطیل هست.", font_size=42, color=WHITE)
        text2.next_to(text1, DOWN, buff=0.8)
        self.play(Write(text2))
        self.wait(1)

        # --- 3️⃣ رسم مستطیل ---
        rect = Rectangle(width=4, height=2, color=YELLOW)
        rect.next_to(text2, DOWN, buff=1)
        self.play(Create(rect))
        self.wait(1)

        # --- 4️⃣ تبدیل مستطیل به مثلث ---
        tri = Polygon(
            [-2, -1, 0],
            [2, -1, 0],
            [0, 1, 0],
            color=GREEN
        )
        tri.move_to(rect.get_center())
        self.play(Transform(rect, tri))
        self.wait(1)

        # --- 5️⃣ تغییر جمله دوم به "این یک مثلث هست." با فونت نستعلیق ---
        new_text2 = FaText(
            "این یک مثلث هست.",
            font_size=42,
            font="IranNastaliq",
            color=GREEN
        )
        new_text2.move_to(text2.get_center())
        self.play(Transform(text2, new_text2))
        self.wait(2)

        # --- 6️⃣ افکت پایانی ---
        self.play(FadeOut(text1), FadeOut(text2), FadeOut(rect))
        self.wait(1)

🧾 مجوز

این پروژه تحت مجوز MIT منتشر می‌شود.
ساخته‌شده توسط علی تابش برای جامعه‌ی فارسی‌زبان Manim.


🤝 مشارکت

اگر پیشنهادی برای بهبود ترانسلیت، فونت‌ها یا سازگاری با نسخه‌های جدید Manim دارید،
Pull Request بسازید یا در بخش Issues مطرح کنید.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

manim_fa-0.3.6.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

manim_fa-0.3.6-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file manim_fa-0.3.6.tar.gz.

File metadata

  • Download URL: manim_fa-0.3.6.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for manim_fa-0.3.6.tar.gz
Algorithm Hash digest
SHA256 9fc54fc93e1f4d248fd9812cf4c7be5893e40904481dcda323ffea2e8fcae74e
MD5 f769f58edc38af6c488b1809c1c2aa5b
BLAKE2b-256 a13d7c204c308b67e16d7dbe4eddaa8a8ccdfda46c73ba3afb647d4edf67dcd7

See more details on using hashes here.

File details

Details for the file manim_fa-0.3.6-py3-none-any.whl.

File metadata

  • Download URL: manim_fa-0.3.6-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for manim_fa-0.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 48b66eaeaf88f288ba75ce0e071192a37616d9798391ce0a5c2b3bf5284e73bd
MD5 a28374f951d97d008660eb61459f32c5
BLAKE2b-256 93b24c9101b686b2363573cda6c115febb2a594ad240ca45651fdb4021a95c94

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page