ICanvas - 图形系统
IEllipse
椭圆图形类,用于绘制椭圆形状。
属性
继承自 Shape 的所有属性,并包含以下特定属性:
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
radiusX | number | 80 | 椭圆水平半径 |
radiusY | number | 20 | 椭圆垂直半径 |
type | string | "IEllipse" | 图形类型标识 |
方法
构造函数
typescript
constructor(config: IShapeOptional, canvas: ICanvas)config: 可选的配置对象canvas: 画布实例
设置方法
setRadiusX(value: number): IEllipse
设置椭圆水平半径
value: 水平半径值- 返回值: 当前IEllipse实例
setRadiusY(value: number): IEllipse
设置椭圆垂直半径
value: 垂直半径值- 返回值: 当前IEllipse实例
setWidth(value: number): IEllipse
设置宽度(会同时更新水平半径)
value: 宽度值- 返回值: 当前IEllipse实例
setHeight(value: number): IEllipse
设置高度(会同时更新垂直半径)
value: 高度值- 返回值: 当前IEllipse实例
继承方法
继承自 Shape 的所有方法,包括:
draw(ctx: CanvasRenderingContext2D): 绘制椭圆isPointInPath(x: number, y: number, shapeId: string): boolean: 检测点是否在椭圆内getBoundRect(): IShapeBoundRect: 获取边界矩形
使用示例
typescript
// 创建一个椭圆
const ellipse = new IEllipse({
x: 100,
y: 100,
radiusX: 60,
radiusY: 30,
fill: "#ff0000",
stroke: "#000000",
strokeWidth: 2
}, canvas);
// 添加到画布
canvas.addShape(ellipse);
// 修改椭圆属性
ellipse.setRadiusX(80)
.setRadiusY(40)
.setFill("#00ff00")
.setStroke("#ff0000");注意事项
- 椭圆由水平半径和垂直半径控制形状
- 支持填充和描边两种渲染模式
- 点击检测基于椭圆的标准方程
- 边界矩形计算基于直径(半径 × 2)
- 支持旋转和缩放变换
