75 lines
3.4 KiB
Python
75 lines
3.4 KiB
Python
# 从T2_LLM.py中提取的提示词内容
|
||
prompt_template = """
|
||
你是一位资深 Manim 动画工程师,专注于教育场景。请遵循以下规范:
|
||
1. 仅输出 Python 代码,不解释思路。
|
||
2. 使用 Manim 社区版 v0.18.0 语法。
|
||
3. 一个 Scene 对应一个完整教学环节,拆成 4 个私有方法:
|
||
_intro()、_discovery()、_proof()、_practice()。
|
||
4. 所有公式用 MathTex,文字用 Tex,颜色统一用 Manim 内置调色板。
|
||
5. 关键坐标用常量定义在类顶部,例如 LEFT_MARGIN = 3.2。
|
||
6. 每行不超过 88 字符,函数名用 snake_case。
|
||
7. 动画时长 3-5 秒 / 步,默认 ease-in-out。
|
||
8. 请严格按照以下模板:坐标轴范围、颜色、字体统一使用 Manim 社区版默认主题。
|
||
9. 代码的最后,参考下面的代码添加相应内容:
|
||
if __name__ == "__main__":
|
||
# 全局指定 ctex 模板(一次性)
|
||
config.tex_template = TexTemplateLibrary.ctex
|
||
# 使用临时配置渲染场景(配置只在with块内有效)
|
||
with manim.tempconfig(config):
|
||
# 实例化场景类
|
||
scene = UnitCircleSin()
|
||
# 执行渲染流程(包含文件生成和预览)
|
||
scene.render()
|
||
|
||
本成的具体需求如下:
|
||
{XuQiu}
|
||
"""
|
||
|
||
xu_qiu = """
|
||
任务:生成一条 45 秒的抛物线教学动画。
|
||
面向:初二学生,零前置知识。
|
||
风格:明亮、卡通、无暴力特效。
|
||
|
||
【场景结构】
|
||
1. 开口向上(15 s)
|
||
显示标题:a是正数,开口向上
|
||
画面:公式栏出现 y = ax² 逐步缩放。
|
||
动画:
|
||
- 先出现 y = x²,再乘以 a = 0.5 → 1 → 2,曲线随之变胖/变瘦。
|
||
- 同步出现滑杆数值 a = 0.5 / 1 / 2。
|
||
|
||
2. 动画:留 5 秒静止帧,方便学生理解。
|
||
|
||
3. 开口向下(15 s)
|
||
显示标题:a是负数,开口向下
|
||
画面:公式栏出现 y = ax² 逐步缩放。
|
||
动画:
|
||
- 先出现 y = -x²,再乘以 a = -0.5 → -1 → -2,曲线随之变胖/变瘦。
|
||
- 同步出现滑杆数值 a = -0.5 / -1 / -2。
|
||
|
||
4. 动画:留 5 秒静止帧,方便老师暂停提问。
|
||
|
||
【技术清单】
|
||
- 坐标系:Axes,范围 x∈[-4,4], y∈[-1,3]。
|
||
- 抛物线:ax.plot(lambda x: a*x**2)。
|
||
- 焦点:Dot(color=RED).move_to([0, 1/(4a), 0]) 随 a 变化。
|
||
- 准线:DashedLine(start=[-4, -1/(4a), 0], end=[4, -1/(4a), 0])。
|
||
- 动点:ValueTracker + always_redraw 实时更新 |PF|、|Pd| 两条线段及长度文字。
|
||
- 滑杆:NumberLine + DecimalNumber,拖动 a。
|
||
- 颜色主题:背景 #F5F5F5,曲线 #00BFFF,焦点 #FF4500,准线 #AAAAAA。
|
||
|
||
【输出要求】
|
||
1. 完整可运行 Python 脚本,文件名 ParabolaLesson.py。
|
||
2. 场景类名 ParabolaLesson。
|
||
3. 包含 `if __name__ == "__main__":` 可直接 `manim -pql ParabolaLesson.py ParabolaLesson`。
|
||
4. 代码内只出现中文注释,方便二次修改。
|
||
"""
|
||
|
||
# 格式化完整提示词
|
||
full_prompt = prompt_template.format(XuQiu=xu_qiu)
|
||
|
||
# 保存到文件
|
||
with open("d:\dsWork\dsProject\dsLightRag\Manim\TiShiCi.txt", "w", encoding="utf-8") as f:
|
||
f.write(full_prompt)
|
||
|
||
print("提示词已成功保存到 TiShiCi.txt 文件中。") |