# g-ellipse 标签 API 文档 本文档由 `DeepSeek R1` 模型生成并微调。 --- ```mermaid graph LR EllipseProps --> GraphicBaseProps --> BaseProps click GraphicBaseProps "./GraphicBaseProps" click BaseProps "./BaseProps" ``` --- ## 接口定义 ```typescript interface EllipseProps extends GraphicBaseProps { radiusX?: number; // 椭圆X轴半径 radiusY?: number; // 椭圆Y轴半径 start?: number; // 起始角度(单位:弧度) end?: number; // 结束角度(单位:弧度) ellipse?: EllipseParams; // 简写属性 [x, y, rx, ry, start?, end?] } ``` --- ## 核心属性说明 | 属性 | 类型 | 默认值 | 说明 | | --------- | ------------------------------ | ------ | ------------------------------------------------------------------ | | `radiusX` | `number` | - | 椭圆 X 轴半径(单位:像素) | | `radiusY` | `number` | - | 椭圆 Y 轴半径(单位:像素) | | `start` | `number` | `0` | 起始角度(弧度),0 弧度 = 3 点钟方向 | | `end` | `number` | `2π` | 结束角度(弧度),默认完整椭圆 | | `ellipse` | `[x, y, rx, ry, start?, end?]` | - | 简写属性:
`[圆心x, 圆心y, X半径, Y半径, 起始角度?, 结束角度?]` | --- ## 完整示例集 ### 示例 1:基础椭圆(填充) ```tsx ``` --- ### 示例 2:描边椭圆 ```tsx ``` --- ### 示例 3:椭圆弓形(闭合) ```tsx ``` **角度说明**: - 绘制方向:**顺时针**(从 45 度到 225 度) - 自动闭合路径形成扇形 - 若路径自相交,`evenodd` 规则会生成镂空 --- ### 示例 4:椭圆弧线(非闭合) ```tsx ``` **路径特征**: - 垂直方向椭圆弧(X 半径 > Y 半径) - 起始角度:-90 度(12 点方向) - 结束角度:90 度(6 点方向) - 开环形成对称弧线 --- ## 角度系统详解 ### 坐标系与方向 ```typescript // 角度系统与圆形一致,但受半径比例影响: /* radiusY ↑ | radiusX +---→ */ ``` - **0 弧度基准**:3 点钟方向(与浏览器 Canvas API 一致) - **半径影响**:当 `radiusX ≠ radiusY` 时,相同角度对应的端点位置会拉伸 - **绘制方向**:角度递增为顺时针方向 ### 特殊角度效果 | 参数组合 | 效果描述 | | ---------------------------------- | ------------------------ | | `radiusX=radiusY` | 退化为标准圆形 | | `start=0, end=Math.PI` | 右半椭圆(水平方向半圆) | | `start=Math.PI/2, end=3*Math.PI/2` | 上半椭圆(垂直方向半圆) | --- ## 高级用法示例 ### 动态仪表盘 ```tsx import { ref } from 'vue'; const value = ref(0.3); ; ``` **效果**: - 椭圆弧仪表盘,从左上方向右侧延伸 - 进度值 `0.3` 时覆盖 30%路径 --- ## 注意事项 1. **简写属性优先级**: ```tsx // 谁最后被设置用谁的 ```