mirror of
https://github.com/unanmed/HumanBreak.git
synced 2025-02-28 17:37:07 +08:00
feat: 完善graphics接口
This commit is contained in:
parent
cf3b41cc7c
commit
20faa0d4b9
@ -25,6 +25,8 @@ interface IGraphicProperty extends ILineProperty {
|
|||||||
fill: CanvasStyle;
|
fill: CanvasStyle;
|
||||||
/** 描边样式 */
|
/** 描边样式 */
|
||||||
stroke: CanvasStyle;
|
stroke: CanvasStyle;
|
||||||
|
/** 填充算法 */
|
||||||
|
fillRule: CanvasFillRule;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const enum GraphicMode {
|
export const enum GraphicMode {
|
||||||
@ -49,6 +51,7 @@ export abstract class GraphicItemBase
|
|||||||
lineJoin: CanvasLineJoin = 'bevel';
|
lineJoin: CanvasLineJoin = 'bevel';
|
||||||
lineCap: CanvasLineCap = 'butt';
|
lineCap: CanvasLineCap = 'butt';
|
||||||
miterLimit: number = 10;
|
miterLimit: number = 10;
|
||||||
|
fillRule: CanvasFillRule = 'nonzero';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置描边绘制的信息
|
* 设置描边绘制的信息
|
||||||
@ -101,11 +104,28 @@ export class Rect extends GraphicItemBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class Circle extends GraphicItemBase {
|
export class Circle extends GraphicItemBase {
|
||||||
|
radius: number = 10;
|
||||||
|
start: number = 0;
|
||||||
|
end: number = Math.PI * 2;
|
||||||
|
|
||||||
protected render(
|
protected render(
|
||||||
canvas: MotaOffscreenCanvas2D,
|
canvas: MotaOffscreenCanvas2D,
|
||||||
transform: Transform
|
transform: Transform
|
||||||
): void {}
|
): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置圆的半径
|
||||||
|
* @param radius 半径
|
||||||
|
*/
|
||||||
|
setRadius(radius: number) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置圆的起始与终止角度
|
||||||
|
* @param start 起始角度
|
||||||
|
* @param end 终止角度
|
||||||
|
*/
|
||||||
|
setAngle(start: number, end: number) {}
|
||||||
|
|
||||||
patchProp(
|
patchProp(
|
||||||
key: string,
|
key: string,
|
||||||
prevValue: any,
|
prevValue: any,
|
||||||
@ -120,11 +140,30 @@ export class Circle extends GraphicItemBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class Ellipse extends GraphicItemBase {
|
export class Ellipse extends GraphicItemBase {
|
||||||
|
radiusX: number = 10;
|
||||||
|
radiusY: number = 10;
|
||||||
|
start: number = 0;
|
||||||
|
end: number = Math.PI * 2;
|
||||||
|
|
||||||
protected render(
|
protected render(
|
||||||
canvas: MotaOffscreenCanvas2D,
|
canvas: MotaOffscreenCanvas2D,
|
||||||
transform: Transform
|
transform: Transform
|
||||||
): void {}
|
): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置椭圆的横纵轴长度
|
||||||
|
* @param x 横轴长度
|
||||||
|
* @param y 纵轴长度
|
||||||
|
*/
|
||||||
|
setRadius(x: number, y: number) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置椭圆的起始与终止角度
|
||||||
|
* @param start 起始角度
|
||||||
|
* @param end 终止角度
|
||||||
|
*/
|
||||||
|
setAngle(start: number, end: number) {}
|
||||||
|
|
||||||
patchProp(
|
patchProp(
|
||||||
key: string,
|
key: string,
|
||||||
prevValue: any,
|
prevValue: any,
|
||||||
@ -139,11 +178,26 @@ export class Ellipse extends GraphicItemBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class Line extends GraphicItemBase {
|
export class Line extends GraphicItemBase {
|
||||||
|
x1: number = 0;
|
||||||
|
y1: number = 0;
|
||||||
|
x2: number = 0;
|
||||||
|
y2: number = 0;
|
||||||
|
|
||||||
protected render(
|
protected render(
|
||||||
canvas: MotaOffscreenCanvas2D,
|
canvas: MotaOffscreenCanvas2D,
|
||||||
transform: Transform
|
transform: Transform
|
||||||
): void {}
|
): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置第一个点的横纵坐标
|
||||||
|
*/
|
||||||
|
setPoint1(x: number, y: number) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置第二个点的横纵坐标
|
||||||
|
*/
|
||||||
|
setPoint2(x: number, y: number) {}
|
||||||
|
|
||||||
patchProp(
|
patchProp(
|
||||||
key: string,
|
key: string,
|
||||||
prevValue: any,
|
prevValue: any,
|
||||||
@ -158,11 +212,40 @@ export class Line extends GraphicItemBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class BezierCurve extends GraphicItemBase {
|
export class BezierCurve extends GraphicItemBase {
|
||||||
|
sx: number = 0;
|
||||||
|
sy: number = 0;
|
||||||
|
cp1x: number = 0;
|
||||||
|
cp1y: number = 0;
|
||||||
|
cp2x: number = 0;
|
||||||
|
cp2y: number = 0;
|
||||||
|
ex: number = 0;
|
||||||
|
ey: number = 0;
|
||||||
|
|
||||||
protected render(
|
protected render(
|
||||||
canvas: MotaOffscreenCanvas2D,
|
canvas: MotaOffscreenCanvas2D,
|
||||||
transform: Transform
|
transform: Transform
|
||||||
): void {}
|
): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置起始点坐标
|
||||||
|
*/
|
||||||
|
setStart(x: number, y: number) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置控制点1坐标
|
||||||
|
*/
|
||||||
|
setControl1(x: number, y: number) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置控制点2坐标
|
||||||
|
*/
|
||||||
|
setControl2(x: number, y: number) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置终点坐标
|
||||||
|
*/
|
||||||
|
setEnd(x: number, y: number) {}
|
||||||
|
|
||||||
patchProp(
|
patchProp(
|
||||||
key: string,
|
key: string,
|
||||||
prevValue: any,
|
prevValue: any,
|
||||||
@ -177,11 +260,33 @@ export class BezierCurve extends GraphicItemBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class QuadraticCurve extends GraphicItemBase {
|
export class QuadraticCurve extends GraphicItemBase {
|
||||||
|
sx: number = 0;
|
||||||
|
sy: number = 0;
|
||||||
|
cpx: number = 0;
|
||||||
|
cpy: number = 0;
|
||||||
|
ex: number = 0;
|
||||||
|
ey: number = 0;
|
||||||
|
|
||||||
protected render(
|
protected render(
|
||||||
canvas: MotaOffscreenCanvas2D,
|
canvas: MotaOffscreenCanvas2D,
|
||||||
transform: Transform
|
transform: Transform
|
||||||
): void {}
|
): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置起始点坐标
|
||||||
|
*/
|
||||||
|
setStart(x: number, y: number) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置控制点坐标
|
||||||
|
*/
|
||||||
|
setControl(x: number, y: number) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置终点坐标
|
||||||
|
*/
|
||||||
|
setEnd(x: number, y: number) {}
|
||||||
|
|
||||||
patchProp(
|
patchProp(
|
||||||
key: string,
|
key: string,
|
||||||
prevValue: any,
|
prevValue: any,
|
||||||
@ -204,6 +309,19 @@ export class Path extends GraphicItemBase {
|
|||||||
transform: Transform
|
transform: Transform
|
||||||
): void {}
|
): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前路径
|
||||||
|
*/
|
||||||
|
getPath() {
|
||||||
|
return this.path;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 为路径添加路径
|
||||||
|
* @param path 要添加的路径
|
||||||
|
*/
|
||||||
|
addPath(path: Path2D) {}
|
||||||
|
|
||||||
patchProp(
|
patchProp(
|
||||||
key: string,
|
key: string,
|
||||||
prevValue: any,
|
prevValue: any,
|
||||||
|
Loading…
Reference in New Issue
Block a user