[修正] 移动平台曲线(如:TRectangle, TPath...等)不平滑的问题

Posted 龟山Aone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[修正] 移动平台曲线(如:TRectangle, TPath...等)不平滑的问题相关的知识,希望对你有一定的参考价值。

问题:从 XE4 以来,Firemonkey 曲线绘图在移动平台不平滑的问题一直令人诟病,提交到官方的 QC 也是族繁不及备载,官方似乎有意的避开这个问题,迟迟没有修正。

适用版本:XE4 ~ Berlin 10.1 update 1 (查过官方源码从 XE4 开始有 FMX.StrokeBuilder)

修正方法:

请将源码 FMX.StrokeBuilder.pas 复制到自己的工程目录里,再进行修改。

unit FMX.StrokeBuilder;

interface

...略...

{+++>}var GlobeStrokeStepSize: Single = 1; // 全局变量:曲线平滑度(像素)by Aone @ 2016.10.12

implementation

...略...

procedure TStrokeBuilder.BuildSolidPolygon(const Points: TPolygon; const Opacity: Single; BreakAtEnd: Boolean);

...略...

{---> 删除代码下面三行代码 by Aone @ 2016.10.12
  StepSize := FThickness; // 曲线精密度,设定为前线宽(如果线越宽,画出来的曲线就越粗糙)
  if StepSize < 2 then // 防止曲线精密度小于2
    StepSize := 2;
<---}
{+++>}StepSize := GlobeStrokeStepSize; // 全局变量:曲线平滑度(像素)by Aone @ 2016.10.12

...略...

end;

  

效果:

例子下载(包含 Berlin 10.1.1 修正档):

[修正]FMX_曲线平滑度_Berlin_10.1.1_Aone.zip

 

效能问题:

实机测试并没有多大差别,应该说感觉不出来(除非一次大量绘制粗线条曲线才会有感觉)。

 

官方相关 QC 列举几个:

https://quality.embarcadero.com/browse/RSP-15819
https://quality.embarcadero.com/browse/RSP-15649
https://quality.embarcadero.com/browse/RSP-15709
https://quality.embarcadero.com/browse/RSP-15788
https://quality.embarcadero.com/browse/RSP-15649

 

以上是关于[修正] 移动平台曲线(如:TRectangle, TPath...等)不平滑的问题的主要内容,如果未能解决你的问题,请参考以下文章

[修正] Firemonkey 中英文混排折行问题(移动平台)

matlab练习程序(修正指数曲线拟合)

火山移动开发平台进度

alias绘汽车时候,怎么打开类似修正的工具,就是画一个不圆的圆也可以变成一个很圆的圆?

AEAI Portal V3.5.4升级说明,门户集成平台

基于伽马变换自适应修正的全景首尾融合算法