2016-04-12 17 views
0

Ich mag die border-radius einen Kreis ändern, wenn ich das Objekt (if scaleX/scaleY>1) -Skala ..., wie der Grenz Radius des Kreises in fabricJS ändern

Das ist mein Kreis Objekt in fabricJS:

function makeStation(left, top, stationID) { 
    var c = new fabric.Circle({ 
     radius: 2, 
     fill: '#5afffa', 
     stroke: '#666', 
     selectable: true, 
     hasRotatingPoint: false, 
     borderColor: 'black', 
     cornerColor: 'black', 

    }); 
    c.left1 = left; 
    c.top1 = top; 
    c.hasControls = c.hasBorders= true; 

    c.stationID = stationID; 
    c.stationName = stations[stationID].name; 
    c.description = stations[stationID].desc; 
    c.image = stations[stationID].image; 

    return c; 
} 

Wie kann ich die border radius ändern?

+0

Der HTML elemets rund/kreisförmig gemacht werden sich die Grenzradius Eigenschaft. Warum brauchen Sie einen Grenzradius auf einem Kreis? – AdityaParab

+0

Was meinen Sie mit Grenzradius? Sie meinen, Sie wollen eine Tinner-Grenze, wenn Sie das Objekt skalieren? – AndreaBogazzi

+0

@AdityaParab Ich möchte den Kreis ein wenig ändern. jetzt ist der grenze radius 50% .. .so wollen, wenn ich skalieren, wird es 10px sein ... – Moran

Antwort

0

Bitte Bitte Code überprüfen, um zu sehen, ob dies ist, was suchen Sie. StrokeWidth bleibt während der Skalierung konstant.

var canvas = new fabric.Canvas("c"); 
 

 
canvas.add(new fabric.Circle({radius: 50, fill: 'red', stroke: 'black', strokeWidth:2})); 
 

 
canvas.on("object:scaling", function(opt){ 
 
    var t = opt.target; 
 
    
 
    t.strokeWidth = 2/Math.min(t.scaleX, t.scaleY); 
 
});
<script src="http://www.deltalink.it/andreab/fabric/fabric.js"></script> 
 
<canvas id="c" width="500" height="500"></canvas>