The update to handle 'A' and 'a' works great! Thanks. Peter Ent Adobe Systems
On 9/9/14 3:42 AM, "OmPrakash Muppirala" <bigosma...@gmail.com> wrote: >On Mon, Sep 8, 2014 at 3:53 PM, OmPrakash Muppirala <bigosma...@gmail.com> >wrote: > >> On Mon, Sep 8, 2014 at 1:59 PM, Peter Ent <p...@adobe.com> wrote: >> >>> I haven't tried the JS side - this is all Flash. In SVG, the fill takes >>> care of closing the path; I'm not using any line or border. >>> >>> >> Yes, it looks like the A parameter is not supported. I will work on >> adding this support in Path. I took a big chunk of the Path >>implementation >> from spark.primitives.Path. It seems like we do need to tweak it >>further. >> >> >Hi, > >The support for 'a' and 'A' (Elliptical Arc) has been added to the Flash >implementation of the Path api. I tried with this: > >path.drawPath(250,500,"M 50 50 L 100 50 A 50 50 0 0 0 50 0 Z"); > >and got a nice little wedge drawn on the screen. > >More importantly, the Flash and SVG renderings look (almost) the same. > >As part of this implementation, I borrowed the drawEllipicalArc() method >from the svgweb library(flash implementation of SVG) [1] The code is >Apache licensed. I have added the link to the original code as a comment >in our code. Do I need to mention this in the NOTICE or LICENSE files? > >Peter, if you can do some more testing and let me know your feedback, that >would be great. > >And looks like this can be added to the current SDK's FXG implementation >as >well. I am surprised that we did not hit this issue in the current SDK. > >Thanks, >Om > >[1] >https://code.google.com/p/svgweb/source/browse/trunk/src/org/svgweb/utils/ >EllipticalArc.as?r=1251 > > > > >> I see that mx.charts.chartClasses.GraphicsUtilities has a drawArc() >> method. I will probably end up using that implementation. >> >> >>> Which brings me to the next issue. When drawing a series of connected >>> lines (for the LineChart), the first and last points are getting >>> connected, which I do not want. My loop to build the path looks like >>>this, >>> below. point[0] != point[last] so they should not be connected. I tried >>> "z" and "Z" thinking one meant leave the path closed and one closed the >>> path, but that didn't make any difference. >>> >>> var pathString:String = ""; >>> >>> for (var i:int=0; i < points.length; >>>i++) >>> { >>> var point:Object = points[i]; >>> if (i == 0) pathString += "M >>> "+point.x+" "+point.y+" "; >>> else pathString += "L >>>"+point.x+" >>> "+point.y+" "; >>> } >>> >>> pathString += "Z"; >>> >>> path.drawPath(0, 0, pathString); >>> >>> >> >> That is weird. I will play with it and see why that is happening. >> > >> Is moveTo() and lineTo() a better approach? >> >> In psedocode, the lines would be drawn like this: >> >> graphics.moveTo(points[0].x, points[0].y); >> for (var i:int=0; i < points.length; i++) { >> if(i+1 < points.length) >> { >> graphics.lineTo(points[i+1].x, points[i+1].y); >> } >> } >> >> In any case, I have the Line class in my list of Graphic elements to >> implement. >> >> > > > >> Thanks, >> Om >> >> >>> >>> Thanks, >>> Peter Ent >>> Adobe Systems >>> >>> On 9/8/14 4:13 PM, "OmPrakash Muppirala" <bigosma...@gmail.com> wrote: >>> >>> >On Mon, Sep 8, 2014 at 12:48 PM, Peter Ent <p...@adobe.com> wrote: >>> > >>> >> I took care of the gjslint issues. >>> >> >>> > >>> >Thanks! Hope it was not too much trouble. >>> > >>> > >>> >> >>> >> Can you supply more information about Path and what is in the path >>> >>string? >>> >> I have a path working in SVG to do the wedges for the pie chart, but >>> >>that >>> >> same string isn't working with core.graphics.Path. >>> >> >>> >> var pathString:String = 'M' + x + ' ' + y + ' L' + x1 + ' ' + y1 + >>>' A' >>> >>+ >>> >> radius + ' ' + radius + >>> >> ' 0 0 1 ' + x2 + ' ' + y2 + ' z'; >>> >> >>> >> >>> >> It doesn't look, to me, like "A" is being recognized. >>> >> >>> > >>> >The path looks like it is doing the following: >>> >M x y : move to x, y >>> >L x1 y1 : draw line from x,y to x1,y1 >>> >A radius radius : draw an arc with xradius=radius and yradius = >>>radius >>> >(so, a circular arc) >>> >0 0 1 : x-axis rotation=0, large-arc = false, sweep = true >>> >x2 y2 : ending point of the arc >>> >z : finish drawing >>> > >>> >BTW, don't you need another line to complete the wedge? >>> > >>> >Is it working fine on the flash side? I will take a look soon. >>> > >>> >Thanks, >>> >Om >>> > >>> > >>> >> >>> >> Thanks, >>> >> Peter Ent >>> >> Adobe Systems >>> >> >>> >> On 9/8/14 12:04 PM, "OmPrakash Muppirala" <bigosma...@gmail.com> >>> wrote: >>> >> >>> >> >On Sep 8, 2014 8:24 AM, "Peter Ent" <p...@adobe.com> wrote: >>> >> >> >>> >> >> I forgot to add that when I build flex-asjs, gjslint finds a >>>number >>> >>of >>> >> >> issues in the new JS graphics code (its usual, spaces at the end >>>of >>> >> >>lines, >>> >> >> sort of thing). I think I am using version 2.3.10 of gjslint but >>>I'm >>> >>not >>> >> >> 100% sure. >>> >> > >>> >> >Yeah, unfortunately there is no gjslint available for Windows. I >>> >>guess I >>> >> >will need you Mac folks to help me out with this :-) >>> >> > >>> >> >Thanks, >>> >> >Om >>> >> > >>> >> >> >>> >> >> Peter Ent >>> >> >> Adobe Systems >>> >> >> >>> >> >> On 9/8/14 3:48 AM, "OmPrakash Muppirala" <bigosma...@gmail.com> >>> >>wrote: >>> >> >> >>> >> >> >FlexJS now supports a basic drawing API (Rect, Ellipse, Circle, >>> >>Path, >>> >> >> >SolidColor, SolidColorStroke) Here are the AS3 [1] and JS [2] >>> >>versions >>> >> >> > >>> >> >> >So far, the rendering fidelity between the Flash and SVG/HTML5 >>> >>version >>> >> >>is >>> >> >> >very very close. For sure, there are some pretty major things >>>to >>> be >>> >> >> >worked >>> >> >> >out, but generally so far, the results have been very >>>encouraging. >>> >> >> > >>> >> >> >You can see a quick and dirty example here: >>> >> >> >Flash version: >>> >> >>http://people.apache.org/~bigosmallm/flexjs/drawing/flash/ >>> >> >> >HTML5 version: >>> >> >>http://people.apache.org/~bigosmallm/flexjs/drawing/html5/ >>> >> >> > >>> >> >> >HTML5 version has been tested to work fine on Chrome, Firefox, >>> IE11, >>> >> >> >Android browser and iPad Safari. >>> >> >> > >>> >> >> >Next up, i will be working on the following items: >>> >> >> >Polygons, Linear gradients, Radial gradients, filters and drop >>> >>shadows. >>> >> >> >These should bring us very close to our current FXG based >>>drawing >>> >>APIs. >>> >> >> > >>> >> >> >After that, I plan on programmatically recreating a few FXG >>>based >>> >>skins >>> >> >in >>> >> >> >FlexJS and see how we can apply it skins on UI components. >>> >> >> > >>> >> >> >Feedback welcome! >>> >> >> > >>> >> >> >[1] >>> >> >> > >>> >> > >>> >> >>> >> >>> >>>https://github.com/apache/flex-asjs/tree/develop/frameworks/as/projects/ >>>F >>> >>l >>> >> >> >exJSUI/src/org/apache/flex/core/graphics >>> >> >> >[2] >>> >> >> > >>> >> > >>> >> >>> >> >>> >>>https://github.com/apache/flex-asjs/tree/develop/frameworks/js/FlexJS/sr >>>c >>> >>/ >>> >> >> >org/apache/flex/core/graphics >>> >> >> >>> >> >>> >> >>> >>> >>