This commit is contained in:
HuangHai
2026-02-05 13:25:00 +08:00
4 changed files with 186 additions and 0 deletions

BIN
close.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 875 B

117
scene.txt Normal file
View File

@@ -0,0 +1,117 @@
好的,作为专业的动画场景设计师,我将根据您提供的教学脚本,设计一套详细、专业且富有教学引导性的动画场景描述。
---
### **整体设定**
* **视觉风格**:现代、简洁、专业的学术风格,带有轻微的科技感。以清晰的线条、柔和的动态和聚焦的视觉引导为核心。
* **配色方案**
* **背景**:深空灰(#1E1E2E或浅灰#F5F5F7确保内容突出。
* **主色**:函数曲线与坐标轴使用**静谧蓝**#4A90E2
* **强调色**:切点、切线、关键公式及高亮部分使用**活力橙**#FF9500
* **辅助色**:文字、标注、次要元素使用**白色**或**浅灰色**#CCCCCC
* **字体**:无衬线字体,清晰易读。
* **节奏基调**:开场引入稍缓,营造画面感;核心讲解部分节奏清晰、步骤分明;总结部分回归平稳、肯定。
---
### **【场景0片头与标题】**
* **镜头与视角**:固定镜头,居中视角。
* **元素与布局**
1. 背景为纯色(深空灰)。
2. 屏幕中央,主题文字“**求切线方程f(x)=x² 在点(1,1)**”由透明快速淡入,并伴随轻微的“打字机”音效。
3. 标题下方,函数图像 `y=x²` 的曲线从标题处如墨水般晕染扩散生成一小段,并闪烁一次强调色光芒后稳定。
* **动画与过渡**标题淡入1秒→ 曲线生成动画1.5秒)→ 整体静止1秒等待旁白开始。
* **时间**约3.5秒。
---
### **【场景1引入 - 抛物线滑梯的比喻】**
* **镜头与视角**模拟一个缓慢的推镜Zoom In从全景推向滑梯上的具体点。
* **元素与布局**
1. **初始画面**:一个风格化的公园背景(简洁线条,低饱和度色彩)。一条光滑的、**蓝色**的抛物线滑梯 `y=x²` 横贯画面。
2. **动画过程**
* 一个**橙色**的小圆点(代表“你”)从滑梯左上方滑下,轨迹与抛物线重合。
* 当圆点运动到坐标 `(1,1)` 附近时,速度减慢并最终停在精确的 `(1,1)` 位置。
* 圆点停住后其周围的一小段抛物线约从x=0.8到x=1.2)开始**高亮闪烁(橙色)**,同时这一小段曲线逐渐“变直”,演变成一条**橙色**的直线段。这个“变直”的过程通过线条的局部拉直和微光流动来表现。
* 旁白说到“**切线**”时,该直线段两端延伸,变成一条完整的直线,并标注文字标签“**切线**”。
* **动画与过渡**圆点滑动3秒→ 停顿与高亮1秒→ 曲线局部变直动画2秒→ 切线延伸与标注1秒。场景末尾公园背景淡出只保留坐标轴、抛物线、切点和切线。
* **时间**约7秒。
---
### **【场景2知识回顾 - 两个关键公式】**
* **镜头与视角**:切到新场景。镜头平移到屏幕左侧。
* **元素与布局**
1. 屏幕分为左右两栏。
2. **左侧栏(标题:核心工具)**
* 先出现标题“**1. 直线方程(点斜式)**”。
* 然后公式 `y - y₀ = k(x - x₀)` 以**书写动画**(仿佛有笔在绘制)的方式出现。出现后,`(x₀, y₀)` 和 `k` 分别用橙色圆圈圈出并向上拉出解释框:“已知点”和“斜率”。
3. **右侧栏(标题:几何意义)**
* 先出现标题“**2. 导数的几何意义**”。
* 然后文字“**f\'(x₀) = 切线斜率 k**”以渐显方式出现。`f\'(x₀)` 和 `k` 之间画上一个橙色的等号,并闪烁强调。
4. 屏幕底部中央,总结性文字“**求切线 = 找点 + 求导(斜率) + 代入**”从下向上滑入,文字颜色为橙色。
* **动画与过渡**左右两栏标题同时淡入0.5秒)→ 左侧公式书写2秒→ 右侧文字渐显并强调等号1.5秒)→ 底部总结滑入1秒
* **时间**约5秒。
---
### **【场景3核心讲解 - “三步走”战略图示】**
* **镜头与视角**:镜头拉回,呈现全局视图。画面以图形化步骤为主导。
* **元素与布局**
1. 背景中央是 `y=x²` 的抛物线。
2. 三个**橙色**的编号卡片(①、②、③)从上至下排列在画面右侧。
3. **动画与步骤同步**
* **旁白“第一步:确认切点”**:卡片①亮起,标题“找点”。抛物线上的点(1,1)瞬间变为**橙色实心圆点**并放大跳动一下,旁边出现标注“切点 (1, 1)”。
* **旁白“第二步:求切线斜率”**:卡片②亮起,标题“求导”。从切点处向上垂直发射一条虚线,到达顶部后变为公式 `k = f\'(1)`。然后 `f(x)=x²` 出现在公式上方,一个箭头指向它,演示“求导”过程:`x²` → `2x`(使用变形动画)。最后将`x=1`代入,`2*1=2`数字“2”落入 `k=` 的后面,并闪烁。
* **旁白“第三步:代入点斜式”**:卡片③亮起,标题“代入”。点斜式公式 `y - 1 = k(x - 1)` 出现在画面左下方。上一步得到的 `k=2` 像一颗棋子一样被“放置”到公式中的 `k` 的位置。公式整体高亮一次。
* **动画与过渡**三步依次进行每一步动画包括卡片亮起、图形反馈、公式演绎持续约3-4秒。步骤间有0.5秒停顿。整个过程连贯,引导视线从图到公式。
* **时间**约10-12秒。
---
### **【场景4示例演示 - 完整计算过程】**
* **镜头与视角**:镜头推近,聚焦于一个模拟“草稿纸”的区域。视角固定。
* **元素与布局**
1. 背景变为浅色网格纸纹理。
2. 画面左侧,从上到下逐步出现计算步骤,每一步都伴随**手写风格的绘制动画**和笔尖音效。
* **已知**`f(x) = x²`, `切点 (1, 1)`。
* **① 求导**`f\'(x) = 2x` `2x`从`x²`变形而来)。
* **② 求斜率**`k = f\'(1) = 2*1 = 2` `2`被圈出)。
* **③ 点斜式**`y - 1 = 2(x - 1)`。
* **④ 化简**
`y - 1 = 2x - 2` “2”分配到括号内
`y = 2x - 2 + 1` “1”移项
`y = 2x - 1` (合并同类项,得到最终结果)。
3. 当最终方程 `y = 2x - 1` 出现时,它被一个**橙色发光矩形框**突出显示,并同步在画面右侧的坐标系中,**橙色切线** `y=2x-1` 被完整绘制出来,穿过切点(1,1)。
* **动画与过渡**每个计算步骤依次出现书写速度适中每步2-3秒。化简过程可以稍快。最终结果高亮时右侧切线绘制动画同步进行2秒
* **时间**约15秒。
---
### **【场景5总结 - 方法论升华】**
* **镜头与视角**:镜头拉远,呈现一个干净、权威的总结画面。
* **元素与布局**
1. 背景恢复为纯色。
2. 屏幕中央出现标题“**求切线方程通用方法**”。
3. 标题下方,三个简洁的图标与文字垂直排列:
* **图标1定位点****找点** `(x₀, y₀)`
* **图标2上升曲线****求斜率** `k = f\'(x₀)`
* **图标3代入公式****写方程** `y - y₀ = f\'(x₀)(x - x₀)`
4. 三个步骤依次从左向右以“飞入”动画出现,每个图标带有轻微的弹性效果。
5. 屏幕底部,口诀“**一找、二求、三代**”以更大的字体和橙色呈现,从模糊到清晰渐显。
* **动画与过渡**标题淡入1秒→ 三个步骤依次飞入每个1秒间隔0.3秒)→ 底部口诀渐显1.5秒)。整个场景节奏平稳、肯定。
* **时间**约6秒。
---
### **【场景6结尾定版】**
* **镜头与视角**:最终定版镜头。所有动态停止。
* **元素与布局**
1. 画面左侧是坐标系,包含蓝色的 `y=x²` 曲线和橙色的切线 `y=2x-1`,切点(1,1)清晰标注。
2. 画面右侧是最终的切线方程 `y = 2x - 1`,以优雅的大字体显示。
3. 整体构图平衡、美观,所有信息一目了然。
* **动画与过渡**从总结场景淡转至此定版1秒。定版画面持续3-5秒供观众消化记忆。
* **时间**约4-6秒。
---
**总时长估算**约50-60秒与脚本旁白长度高度匹配。每个场景的动画节奏都与旁白的讲解节奏同步确保视听统一重点突出。

31
test01.py Normal file
View File

@@ -0,0 +1,31 @@
import requests
import json
# API配置
url = 'https://api.lingyaai.cn/v1/images/generations'
api_key = 'sk-bSjxX2X1FAptXPcBjItcMcbRvcGFZTtRRcUf52BGQr1dscZM' # 请替换为你的实际API密钥
# 请求头
headers = {
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
}
# 请求数据
data = {
'prompt': '帮我生成一张数字化校园的结构图',
'model': 'nano-banana-pro',
'aspect_ratio': '1:1'
}
# 发送POST请求
response = requests.post(url, headers=headers, json=data)
# 打印响应
print(f'状态码: {response.status_code}')
print(f'响应内容: {response.text}')
# 如果需要解析JSON响应
if response.status_code == 200:
result = response.json()
print(f'JSON响应: {json.dumps(result, indent=2, ensure_ascii=False)}')

38
test02.py Normal file
View File

@@ -0,0 +1,38 @@
import requests
import json
# API配置
url = 'https://api.lingyaai.cn/v1/messages'
api_key = 'sk-bSjxX2X1FAptXPcBjItcMcbRvcGFZTtRRcUf52BGQr1dscZM' # 请替换为你的实际API密钥
# 读取scene.txt文件内容
with open('scene.txt', 'r', encoding='utf-8') as f:
scene_content = f.read()
# 请求头
headers = {
'anthropic-version': '2023-06-01',
'content-type': 'application/json',
'x-api-key': api_key
}
# 请求数据
data = {
'model': 'claude-sonnet-4-5-20250929',
'max_tokens': 1024,
'messages': [
{'role': 'user', 'content': scene_content}
]
}
# 发送POST请求
response = requests.post(url, headers=headers, json=data)
# 打印响应
print(f'状态码: {response.status_code}')
print(f'响应内容: {response.text}')
# 如果需要解析JSON响应
if response.status_code == 200:
result = response.json()
print(f'\nJSON响应: {json.dumps(result, indent=2, ensure_ascii=False)}')