Changeset 12880

Show
Ignore:
Timestamp:
03/04/08 17:30:40 (9 months ago)
Author:
elazutkin
Message:

gfx.canvas: replacing buggy arcTo with arc until everybody learn

how to implement it. Thx, Chris Mitchell, for the patch (CLA on file).

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • dojox/trunk/gfx/canvas.js

    r11681 r12880  
    1111(function(){ 
    1212        var g = dojox.gfx, gs = g.shape, ga = g.arc,  
    13                 m = g.matrix, mp = m.multiplyPoint, twoPI = 2 * Math.PI; 
     13                m = g.matrix, mp = m.multiplyPoint, pi = Math.PI, twoPI = 2 * pi, halfPI = pi /2; 
    1414         
    1515        dojo.extend(g.Shape, { 
     
    161161                        ctx.beginPath(); 
    162162                        ctx.moveTo(xl2, yt); 
    163                         ctx.lineTo(xr2, yt); 
    164                         if(r){ ctx.arcTo(xr, yt, xr, yt2, r); } 
    165                         ctx.lineTo(xr, yb2); 
    166                         if(r){ ctx.arcTo(xr, yb, xr2, yb, r); } 
    167                         ctx.lineTo(xl2, yb); 
    168                         if(r){ ctx.arcTo(xl, yb, xl, yb2, r); } 
    169                         ctx.lineTo(xl, yt2); 
    170                         if(r){ ctx.arcTo(xl, yt, xl2, yt, r); } 
     163                        if(r){ 
     164                                ctx.arc(xr2, yt2, r, -halfPI, 0, false); 
     165                                ctx.arc(xr2, yb2, r, 0, halfPI, false); 
     166                                ctx.arc(xl2, yb2, r, halfPI, pi, false); 
     167                                ctx.arc(xl2, yt2, r, pi, halfPI, false); 
     168                        }else{ 
     169                                ctx.lineTo(xr2, yt); 
     170                                ctx.lineTo(xr, yb2); 
     171                                ctx.lineTo(xl2, yb); 
     172                                ctx.lineTo(xl, yt2); 
     173                        } 
    171174                        ctx.closePath(); 
    172175                }