# YMANIM **Repository Path**: yao_mi/ymanim ## Basic Information - **Project Name**: YMANIM - **Description**: c语言动效库,可用于UI动态效果,2D动效绘图,讲解动画制作 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-30 - **Last Updated**: 2026-09-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # YMANIM 独立的 C99 动效与矢量动画库,当前版本 **0.14.1**。从笔记工具原型中分离,沿用 YMGUI 的“库本体 / 基础示例 / 独立应用 / SDK”组织方式。现有 `yma_*` API 和 `ym_animation.h` 保持兼容,新增入口头 `YMANIM.h` 与 CMake 目标 `YMANIM::ymanim`。 支持时间轴、缓动、路径与形变、分组、进出场、运动轨迹、矢量文字及软件光栅化。核心仅依赖 C 标准库和数学函数;不依赖 YMGUI、YMGRE、SDL、Python 或系统字体服务。字体与解析器随源码提供,字体在构建时嵌入。动态内存统一经 `CONFIG/` 的大小双档适配层,裸机可分别映射到高速内存和大容量外部内存。 ![CNN 动画讲解](docs/shots/animation-v13-cnn.gif) ## 目录 | 目录 | 职责 | |---|---| | `YMANIM/` | 可移植库本体,包含头文件、CORE、GEOMETRY、RENDER、TEXT 和内置字体;可单独拷贝接入 | | `Demo/` | 纯核心场景与 11 个无窗口渲染示例 | | `project_Demo/animation_studio/` | 独立播放器工程;CNN、Text Lab 和原有场景 | | `extern_lib/` | 播放器需要的 YMGUI/YMGRE SDK,核心不引用 | | `sdk/` | 独立库安装、打包、接入示例和手册 | | `releases/` | 已验证的平台 SDK 压缩包、外层校验值和下载说明 | | `tests/` | 动画核心与场景的行为验证 | | `docs/` | 当前状态、架构、功能、迁移和验证记录 | ## 构建与运行 只构建库、基础示例和测试,不需要桌面依赖: ```sh cmake -S . -B build/Demo -DCMAKE_BUILD_TYPE=Release cmake --build build/Demo --parallel 4 ctest --test-dir build/Demo --output-on-failure ./build/Demo/cnn_renderer 25.7 build/cnn.ppm ``` 连同播放器一起构建、测试: ```sh ./build_all.sh -t ./run.sh # 默认 CNN,36 秒 ./run.sh --demo lab # 文字试验区 ``` 播放器使用随项目迁入的 Linux x86_64 YMGUI/YMGRE SDK,需要本机 SDL2 开发包和 pkg-config。其他平台需提供对应 SDK;核心可使用对应 C 工具链重编译,目前未验收其他平台。 只生成静态库可加 `-DBUILD_TESTING=OFF -DYMANIM_BUILD_DEMOS=OFF`。根构建不自动构建 `project_Demo`,避免把桌面依赖带进库工程。 ## 接入其他项目 源码方式:复制 `YMANIM/`,然后: ```cmake add_subdirectory(extern/YMANIM) target_link_libraries(my_app PRIVATE YMANIM::ymanim) ``` SDK 方式:运行 `./sdk/build.sh` 生成 `build/YMANIM_libs/` 和 `build/archives/` 下的平台压缩包;`./sdk/build.sh --release` 验证成功后更新 `releases/`。外部项目使用: ```cmake find_package(YMANIM 0.14 CONFIG REQUIRED) target_link_libraries(my_app PRIVATE YMANIM::ymanim) ``` 配置时指定 `-DCMAKE_PREFIX_PATH=/path/to/YMANIM_libs`。已编译包只适用于匹配平台和 ABI;详情见 [SDK 接入手册](sdk/MANUAL.md)。 ## 文档与边界 - [当前状态](docs/当前状态.md)、[构建目录](docs/BUILD_LAYOUT.md)、[架构](docs/ARCHITECTURE.md)、[内存适配](docs/memory.md) - [完整功能](docs/FEATURES.md)、[CNN 示例](docs/cnn.md)、[矢量文字](docs/text.md) - [验证记录](docs/verification.md)、[开发记录](docs/DEVLOG.md)、[迁移说明](docs/MIGRATION.md) 这次完成项目分离与接入包装。尚未新增 UI 控件属性绑定、交互动画中断/反向、弹簧或三维动画接口。原有 CNN 和文字能力保持不变。 YMANIM 自有代码使用 [LicenseRef-YMANIM-Noncommercial-1.0](LICENSE):非商业使用免费,商业用途须事先取得书面授权。第三方字体及 stb 的原始许可、来源和哈希位于 `YMANIM/TEXT/fonts/`、`YMANIM/TEXT/stb/`;播放器 SDK 的许可保留在其包内。