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.3.tar.gz (11.3 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.3-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: manim_fa-0.3.3.tar.gz
  • Upload date:
  • Size: 11.3 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.3.tar.gz
Algorithm Hash digest
SHA256 6b4b1336a5cef4b10d372e4fb8332e7049eeb816931619dddc9e235e31f9041e
MD5 5739316ad33feafde908f57d39422e49
BLAKE2b-256 54dcc223621db161f0c8e8843c41adf36f0b79f96688b6250e9c4ae4ec518a15

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manim_fa-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 10.1 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2a6a541b8eddd68a200a4bc9409e892444128e0a847040ef4078283b6abb627b
MD5 9a36b86e285195f3c2c4bc8f31919dfd
BLAKE2b-256 5eb45d216d483e3e70988759cfd8d71a9e0c9565b9801c8af0909552c487010c

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