我正在图纸上的应用程序和线路质量似乎相比其他绘图应用程序是非常低,参差不齐。线路质量非常低,锯齿状或模糊的边缘
或者,它可能是其他应用程序正在做的事情不是我做的不同。
我迄今所做的就是用图形属性来绘制线条。我还收集了鼠标移动事件的鼠标位置分配到路径后面。总结它:
mouseDownHandler:使用
mouseDownPoint.x = event.stageX;
mouseDownPoint.y = event.stageY;
drawCommands.push(GraphicsPathCommand.MOVE_TO);
simplePath = "M " + mouseDownPoint.x + " " + mouseDownPoint.y;
MouseMoveHandler:
line.graphics.lineStyle(lineWeight, lineColor, lineAlpha, pixelHinting);
line.graphics.moveTo(previousPoint.x, previousPoint.y);
scaledPoint = new Point(localPoint.x/scaleX, localPoint.y/scaleY);
line.graphics.lineTo(scaledPoint.x, scaledPoint.y);
previousPoint.x = scaledPoint.x;
previousPoint.y = scaledPoint.y;
simplePath += " L " + scaledPoint.x + " " + scaledPoint.y;
MouseUpHandler:
myPath.data = simplePath;
当我画我更新的订单(这是在UIComponent但也可以同样是一个形状或雪碧 - 任何带有图形属性)。同时我跟踪simplePath字符串中的鼠标位置。
当鼠标向上是我清除线图形和显示的路径图形元素。路径是不是这个很重要,但我发现它看起来比已经拟定,该行稍微干净。这可能是因为它具有像素提示(它不是更清洁)。有时候会有文物。而且我还包括它以防我因某种原因需要使用路径。
下面是截图:
像素暗示版本看起来更清晰,但它仍然是远远低于线在其他应用程序绘制的质量和在某些情况下,使得它看起来更锯齿。有什么我失踪?
注:我的Graphics2D包括和canvas2d,因为我相信这可能不涉及到具体的语言或平台,但可能与一般的画图。
您可能想要为用户可能输入的曲折添加一些平滑处理。像这里的绿色贝塞尔曲线:http://delimiter.ru/temp/bezier.png – Organis
@Organis是的。这看起来很棒!这就是我想念的。我需要做什么?我从哪说起呢? –
我会在几分钟后发布数学。 – Organis