我使用LogAxis在Flex中创建了折线图。 Flex在与Log轴的主要刻度线相同的位置绘制小刻度线,所以我需要手动绘制次刻度线标记。我尝试使用mxml中的backgroundElements中的CartesianDataCanvas,然后使用ActionScript在数据画布上使用moveTo(x1,y1)和lineTo(x2,y2)绘制线条, ,它在(x1,y1)和(x2,y2)之间画出一条直线。Flex:如何使用屏幕坐标在图表上绘制线段?
上述方法的问题是刻度标记长度是图表区域(取决于浏览器窗口大小)的函数。
我需要的是一个方法:
(1)在数据开始坐标(如的moveTo(X1,Y1)工作正常,这一点)
(2)画线到屏幕坐标(例如,lineTo(x_screen,y_screen),其中x_screen和y_screen是屏幕坐标)。
在Flex/AS3中有什么可以做到的?
或者,我可以使用上述两个步骤的屏幕坐标吗?如果是这样,如何在屏幕和数据坐标之间进行转换?例如,屏幕的右上角总是固定的数据坐标,我可以参考创建这样一个转换?
或者,我可以在Illustrator中保存一个五行像素的行,并将该图像以某种方式粘贴到图表中?如果是这样,如何将其精确粘贴到数据坐标?
任何想法或意见非常赞赏。
非常感谢Timofei,我了解到有函数localToData和dataToLocal,并设法使用它们进行数据坐标转换。但是,男孩,在画布上绘制刻度时,图表渲染速度很慢!不确定您提出的解决方案是否会加快速度,但我不知道我是否能够深入了解Flex代码。 – ggkmath 2012-01-16 22:18:46