fix bug custom shape
This commit is contained in:
@@ -51,13 +51,20 @@ export const getKonvaGradientProps = (
|
||||
width: number,
|
||||
height: number,
|
||||
mode: GradientPointMode,
|
||||
offset: Point = { x: 0, y: 0 },
|
||||
) => {
|
||||
if (fillType !== "gradient" || !gradient) return {};
|
||||
const points = getGradientPoints(width, height, gradient.angle, mode);
|
||||
return {
|
||||
fillPriority: "linear-gradient" as const,
|
||||
fillLinearGradientStartPoint: points.start,
|
||||
fillLinearGradientEndPoint: points.end,
|
||||
fillLinearGradientStartPoint: {
|
||||
x: points.start.x + offset.x,
|
||||
y: points.start.y + offset.y,
|
||||
},
|
||||
fillLinearGradientEndPoint: {
|
||||
x: points.end.x + offset.x,
|
||||
y: points.end.y + offset.y,
|
||||
},
|
||||
fillLinearGradientColorStops: [0, gradient.from, 1, gradient.to] as [
|
||||
number,
|
||||
string,
|
||||
@@ -67,6 +74,23 @@ export const getKonvaGradientProps = (
|
||||
};
|
||||
};
|
||||
|
||||
/** SVG linearGradient endpoints matching the Konva gradient math. */
|
||||
export const getSvgGradientEndpoints = (
|
||||
gradient: LinearGradient,
|
||||
width: number,
|
||||
height: number,
|
||||
mode: GradientPointMode = "rect",
|
||||
offset: Point = { x: 0, y: 0 },
|
||||
) => {
|
||||
const points = getGradientPoints(width, height, gradient.angle, mode);
|
||||
return {
|
||||
x1: points.start.x + offset.x,
|
||||
y1: points.start.y + offset.y,
|
||||
x2: points.end.x + offset.x,
|
||||
y2: points.end.y + offset.y,
|
||||
};
|
||||
};
|
||||
|
||||
export const toCssLinearGradient = (gradient: LinearGradient | undefined) => {
|
||||
if (!gradient) return undefined;
|
||||
return `linear-gradient(${normalizeAngle(gradient.angle)}deg, ${gradient.from} 0%, ${gradient.to} 100%)`;
|
||||
|
||||
Reference in New Issue
Block a user