繁体   English   中英

无法使用react-konva赋予线条渐变

[英]Unable to give gradient to a line using react-konva

我已经用react-konva画了一条线。 现在,我正在尝试为该线设置渐变色,但它对我不起作用。 以下是相关代码:

            <Layer>
                <Motion
                    style={
                        {
                            startX: spring(100),
                            startY: spring(100),
                            endX: spring(!isLineScale ? 500 : 100),
                            endY: spring(!isLineScale ? 500 : 100),
                        }
                    }
                >
                    {({startX, startY, endX, endY}) => {
                        return(
                            <Line
                                points={[startX, startY, endX, endY]}
                                stroke={stroke}
                                strokeWidth={5}
                                fillLinearGradientStartPointX={100}
                                fillLinearGradientStartPointY={100}
                                fillLinearGradientEndPointX={500}
                                fillLinearGradientEndPointY={500}
                                fillLinearGradientColorStops={[0, 'green', 0.5, 'red']}
                            />
                        )
                    }}
                </Motion>
            </Layer>

react-konva不支持通过配置进行渐变笔划。 但是您可以手动创建渐变,然后将其用作stroke属性。

const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');

var gradient = ctx.createLinearGradient(0, 0, 100, 100);
gradient.addColorStop(0.00, 'red');
gradient.addColorStop(1 / 6, 'orange');
gradient.addColorStop(2 / 6, 'yellow');
gradient.addColorStop(3 / 6, 'green')
gradient.addColorStop(4 / 6, 'aqua');
gradient.addColorStop(5 / 6, 'blue');
gradient.addColorStop(1.00, 'purple');

function App() {
    return (
      <Stage width={700} height={700}>
        <Layer>
            <Line points={[50, 50, 200, 200]} stroke={gradient} />
        </Layer>
      </Stage>
    );
}

演示: http//jsbin.com/hohoyuliro/edit?js,输出

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM