加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 04:38:32 所属栏目:大数据 来源:网络整理
导读:问题:从XE4以来,Firemonkey曲线绘图在移动平台不平滑的问题一直令人诟病,提交到官方的 QC 也是族繁不及备载,官方似乎有意的避开这个问题,迟迟没有修正。 适用版本:XE4 ~ Berlin 10.1 update 1 (查过官方源码从 XE4 开始有FMX.StrokeBuilder) 修正方

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

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

修正方法:

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

<span style="color: #0000ff">interface<span style="color: #000000">

...略...

<span style="color: #008000">{<span style="color: #008000">+++><span style="color: #008000">}<span style="color: #0000ff">var GlobeStrokeStepSize: Single = <span style="color: #800080">1; <span style="color: #008000">//<span style="color: #008000"> 全局变量:曲线平滑度(像素)by Aone @ 2016.10.12

<span style="color: #0000ff">implementation<span style="color: #000000">

...略...

<span style="color: #0000ff">procedure TStrokeBuilder.BuildSolidPolygon(<span style="color: #0000ff">const Points: TPolygon; <span style="color: #0000ff">const<span style="color: #000000"> Opacity: Single; BreakAtEnd: Boolean);

...略...

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

<span style="color: #0000ff">end;

效果:

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

效能问题:

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

官方相关 QC 列举几个:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读