mirror of
https://github.com/end-4/dots-hyprland.git
synced 2026-06-07 07:49:28 -05:00
35 lines
1.0 KiB
QML
35 lines
1.0 KiB
QML
import qs.modules.common
|
|
import QtQuick
|
|
|
|
Canvas {
|
|
id: root
|
|
property real amplitudeMultiplier: 0.5
|
|
property real frequency: 6
|
|
property color color: Appearance?.colors.colPrimary ?? "#685496"
|
|
property real lineWidth: 4
|
|
property real fullLength: width
|
|
|
|
onPaint: {
|
|
var ctx = getContext("2d");
|
|
ctx.clearRect(0, 0, width, height);
|
|
|
|
var amplitude = root.lineWidth * root.amplitudeMultiplier;
|
|
var frequency = root.frequency;
|
|
var phase = Date.now() / 400.0;
|
|
var centerY = height / 2;
|
|
|
|
ctx.strokeStyle = root.color;
|
|
ctx.lineWidth = root.lineWidth;
|
|
ctx.lineCap = "round";
|
|
ctx.beginPath();
|
|
for (var x = ctx.lineWidth / 2; x <= root.width - ctx.lineWidth / 2; x += 1) {
|
|
var waveY = centerY + amplitude * Math.sin(frequency * 2 * Math.PI * x / root.fullLength + phase);
|
|
if (x === 0)
|
|
ctx.moveTo(x, waveY);
|
|
else
|
|
ctx.lineTo(x, waveY);
|
|
}
|
|
ctx.stroke();
|
|
}
|
|
}
|