Behalten Sie strokeWidth beim Skalieren in Fabric js bei

8

Hinweis: Ich habe referenziert SO Frage , aber es ist nicht nützlich für meinen Fall, weil

1) Ich versuche, den vorherigen Rahmen beizubehalten, aber ab sofort wird der Rahmen beim Skalieren neu berechnet.

Ich habe den folgenden Code hinzugefügt, um die Grenze beim Skalieren des Objekts automatisch zu erhöhen. Jetzt ist das Problem, dass ich einen 5px-Rahmen zum Objekt hinzugefügt habe, aber wenn ich das Objekt skaliere, behält es den Rahmen, den ich vorher hinzugefügt habe, nicht bei.

%Vor%

Nun möchte ich verhindern, dass der Rand vergrößert wird, während das Objekt skaliert wird. Die Grenze sollte so bleiben wie zuvor.

Hier ist Schnipsel / Codepen

%Vor% %Vor% %Vor%

Schritte

1) Rechteck hinzufügen
2) Übernehmen Sie die Grenze (sagen wir 5)
3) Skaliere das Objekt

Jetzt können Sie sehen, dass der angewendete Rahmen weg ist. So, wie man das löst?

Aktualisieren

Ich habe unten Option versucht, aber es funktioniert nicht, im Grunde versuche ich strokeWidth / Border für Objekte wie Rechteck, Kreis, Dreieck, Linie, Polygon

Was ich bisher versucht habe:

%Vor%

Fragen, die ich beantwortet habe:

Ссылка

Kann nicht Behalten Sie die Stärke von strokeWidth bei und ändern Sie die Größe bei Gruppen in Fabricjs

Fabricjs Wie skalieren Objekt, aber halten Sie die Rahmenbreite (Stroke) fest

Ändern Sie die Größe eines Fabricjs rect, um die Randgröße beizubehalten

Ссылка

Aber nicht in der Lage, eine Lösung zu finden.

    
DS9 27.02.2018, 09:28
quelle

2 Antworten

4

Setze strokeWidth auf strokeWidthUnscaled für das erste Mal und dann @ auf scalling, um Caching zu machen mache es nur dann false, wenn es nach dem Modifizieren verändert wird.

%Vor%

Und zum Auswählen einer neuen Strichbreite tun Sie dies

%Vor%

Beispiel

%Vor% %Vor% %Vor%
    
Durga 02.03.2018 07:42
quelle
1

Im Objekt: Skalierung habe ich die Berechnung basierend auf der Skalierung auskommentiert. Da der unskalierte Wert = 1 war und durch die Skalierung geteilt wurde, führte dies immer dazu, dass die Grenze einen Bruchteil annimmt (anstatt zu bleiben).

%Vor% %Vor% %Vor%
    
Ken Hansen 01.03.2018 21:03
quelle