@@ -287,42 +287,44 @@ class JsTools {
287
287
else {
288
288
// Shape
289
289
var superScale = 3 ;
290
- var wid = ed .width * superScale ;
291
- var hei = ed .height * superScale ;
290
+ var scaledSizePx = sizePx * superScale ;
291
+ var padPct = 0.05 ;
292
+ var pad = M .round ( scaledSizePx * padPct );
293
+ var shapeWid = scaledSizePx * (1 - padPct * 2 ) * ( ed .width > ed .height ? 1 : ed .width / ed .height );
294
+ var shapeHei = scaledSizePx * (1 - padPct * 2 ) * ( ed .height > ed .width ? 1 : ed .height / ed .width );
292
295
var jCanvas = new J (' <canvas></canvas>' );
293
296
jCanvas .appendTo (jWrapper );
294
- jCanvas .attr (" width" , wid );
295
- jCanvas .attr (" height" , hei );
297
+ jCanvas .attr (" width" , scaledSizePx );
298
+ jCanvas .attr (" height" , scaledSizePx );
296
299
297
300
var cnv = Std .downcast ( jCanvas .get (0 ), js.html. CanvasElement );
298
301
var ctx = cnv .getContext2d ();
299
- var pad = M .round ( sizePx * 0.1 * superScale );
300
302
301
303
ctx .fillStyle = new dn. Col (ed .color ).toCssRgba (ed .fillOpacity );
302
304
ctx .strokeStyle = new dn. Col (ed .color ).toCssRgba (ed .lineOpacity );
303
305
ctx .lineWidth = 2 / superScale ;
304
306
305
307
switch ed .renderMode {
306
308
case Rectangle :
307
- ctx .fillRect (pad , pad , wid - pad * 2 , hei - pad * 2 );
308
- ctx .strokeRect (pad , pad , wid - pad * 2 , hei - pad * 2 );
309
+ ctx .fillRect (scaledSizePx * 0.5 - shapeWid * 0.5 , scaledSizePx * 0.5 - shapeHei * 0.5 , shapeWid , shapeHei );
310
+ ctx .strokeRect (scaledSizePx * 0.5 - shapeWid * 0.5 , scaledSizePx * 0.5 - shapeHei * 0.5 , shapeWid , shapeHei );
309
311
310
312
case Ellipse :
311
313
ctx .beginPath ();
312
314
ctx .ellipse (
313
- wid * 0.5 , hei * 0.5 ,
314
- wid * 0.5 - pad , hei * 0.5 - pad ,
315
+ scaledSizePx * 0.5 , scaledSizePx * 0.5 ,
316
+ shapeWid * 0.5 , shapeHei * 0.5 ,
315
317
0 , 0 , M .PI * 2
316
318
);
317
319
ctx .fill ();
318
320
ctx .stroke ();
319
321
320
322
case Cross :
321
323
ctx .lineWidth = 3 ;
322
- ctx .moveTo (0 , 0 );
323
- ctx .lineTo (wid , hei );
324
- ctx .moveTo (0 , hei );
325
- ctx .lineTo (wid , 0 );
324
+ ctx .moveTo (scaledSizePx * 0.5 - shapeWid * 0.5 , scaledSizePx * 0.5 - shapeHei * 0.5 );
325
+ ctx .lineTo (scaledSizePx * 0.5 + shapeWid * 0.5 , scaledSizePx * 0.5 + shapeHei * 0.5 );
326
+ ctx .moveTo (scaledSizePx * 0.5 + shapeWid * 0.5 , scaledSizePx * 0.5 - shapeHei * 0.5 );
327
+ ctx .lineTo (scaledSizePx * 0.5 - shapeWid * 0.5 , scaledSizePx * 0.5 + shapeHei * 0.5 );
326
328
ctx .stroke ();
327
329
328
330
case Tile : // N/A
0 commit comments