Add rounded caps and increase draw speed

This commit is contained in:
Florine W. Dekker 2021-10-31 17:37:19 +01:00
parent 93816fad4b
commit fe525dc859
Signed by: FWDekker
GPG Key ID: D3DCFAA8A4560BE0
1 changed files with 7 additions and 5 deletions

View File

@ -125,9 +125,10 @@ class Line {
const settings = {
dotRadius: 20,
fillGoal: 0.3,
lineLength: 5,
lineThicknesses: [1, 5, 15],
stepTime: 250,
stepsPerLevel: 5,
stepTime: 25,
stepsPerLevel: 15,
zoomSpeed: 1 / 30,
};
@ -146,10 +147,10 @@ doAfterLoad(() => {
const lines: Line[] = [new Line(settings.lineThicknesses[0]), new Line(settings.lineThicknesses[1])];
let step = 0;
setInterval(() => {
const currentLevel = lines.findIndex(it => it.segments.length !== 25);
const currentLevel = lines.findIndex(it => it.segments.length !== settings.stepsPerLevel ** 2);
// Add low-level segment
const length = settings.stepsPerLevel ** (2 + currentLevel);
const length = settings.lineLength ** (2 + currentLevel);
let angle: number;
if (lines[currentLevel].segments.length > 0)
angle = lines[currentLevel].segments.slice(-1)[0].angle() + (random_normal() - 0.5) * Math.PI * 2;
@ -162,7 +163,7 @@ doAfterLoad(() => {
const inductionLevel = currentLevel + level;
const lowerLines = lines[inductionLevel - 1];
if (lowerLines.segments.length !== 0 && lowerLines.segments.length % 5 === 0) {
if (lowerLines.segments.length !== 0 && lowerLines.segments.length % settings.stepsPerLevel === 0) {
if (lines.length <= inductionLevel) {
lines[inductionLevel] = new Line(settings.lineThicknesses[level] / zoomFactor);
}
@ -217,6 +218,7 @@ doAfterLoad(() => {
ctx.scale(zoomFactor, zoomFactor);
// Lines
ctx.lineCap = "round";
ctx.strokeStyle = "#ffffff";
for (const line of lines) {
ctx.lineWidth = line.thickness;