增加SettingsreversePainter可设置Serie的绘制是否逆序

This commit is contained in:
monitor1394
2021-04-29 07:30:42 +08:00
parent 054387c71c
commit 83b876e80d
10 changed files with 36 additions and 7 deletions

View File

@@ -34,6 +34,7 @@
## Latest
* (2021.04.29) Added `Settings`'s `reversePainter` to set whether or not `Serie` is drawn in reverse order
* (2021.04.28) Fixed bug where `AxisLabel` displayed incorrectly with `DataRoom` (#138)
* (2021.04.26) Fixed dynamically creating chart at runtime would be abnormal #137
* (2021.04.26) Added support for `Barchart` to draw gradient borders

View File

@@ -34,6 +34,7 @@
## Latest
* (2021.04.29) 增加`Settings``reversePainter`可设置`Serie`的绘制是否逆序
* (2021.04.28) 增加`SerieData``ignore`可忽略当前数据项
* (2021.04.28) 修复`DataZoom``AxisLabel`显示不准确的问题 #138
* (2021.04.26) 修复运行时动态创建图表会异常的问题 #137

View File

@@ -797,6 +797,8 @@ K线图系列。
全局参数设置组件。一般情况下可使用默认值,当有需要时可进行调整。
* `reversePainter`Painter是否逆序。逆序时index大的serie最先绘制。
* `maxPainter`默认最大Painter数据当Serie数量大于maxPainter时会平均分配Painter。
* `lineSmoothStyle`:曲线平滑系数。通过调整平滑系数可以改变曲线的曲率,得到外观稍微有变化的不同曲线。
* `lineSmoothness`:曲线平滑度。值越小曲线越平滑,但顶点数也会随之增加。当开启有渐变的区域填充时,数值越大渐变过渡效果越差。
* `lineSegmentDistance` 线段的分割距离。普通折线图的线是由很多线段组成,段数由该数值决定。值越小段数越多,但顶点数也会随之增加。当开启有渐变的区域填充时,数值越大渐变过渡效果越差。

View File

@@ -690,6 +690,8 @@ K线图系列。
全局参数设置组件。一般情况下可使用默认值,当有需要时可进行调整。
* `reversePainter`Painter是否逆序。逆序时index大的serie最先绘制。
* `maxPainter`默认最大Painter数据当Serie数量大于maxPainter时会平均分配Painter。
* `lineSmoothStyle`: 曲线平滑系数。通过调整平滑系数可以改变曲线的曲率,得到外观稍微有变化的不同曲线。
* `lineSmoothness`: 曲线平滑度。值越小曲线越平滑,但顶点数也会随之增加。当开启有渐变的区域填充时,数值越大渐变过渡效果越差。
* `lineSegmentDistance`: 线段的分割距离。普通折线图的线是由很多线段组成,段数由该数值决定。值越小段数越多,但顶点数也会随之增加。当开启有渐变的区域填充时,数值越大渐变过渡效果越差。

View File

@@ -27,6 +27,7 @@ namespace XCharts
chart.settings.Reset();
}
++EditorGUI.indentLevel;
PropertyField(prop, "m_ReversePainter");
PropertyField(prop, "m_MaxPainter");
PropertyField(prop, "m_LineSmoothStyle");
PropertyField(prop, "m_LineSmoothness");

View File

@@ -122,6 +122,14 @@ namespace XCharts
}
}
/// <summary>
/// 重新初始化Painter
/// </summary>
public void SetPainterDirty()
{
m_PainerDirty = true;
}
/// <summary>
/// Redraw graph in next frame.
/// 在下一帧刷新图形。

View File

@@ -18,6 +18,7 @@ namespace XCharts
public class Settings : MainComponent
{
[SerializeField] [Range(1, 20)] protected int m_MaxPainter = 10;
[SerializeField] protected bool m_ReversePainter = false;
[SerializeField] [Range(1, 10)] protected float m_LineSmoothStyle = 3f;
[SerializeField] [Range(1f, 20)] protected float m_LineSmoothness = 2f;
[SerializeField] [Range(1f, 20)] protected float m_LineSegmentDistance = 3f;
@@ -35,6 +36,14 @@ namespace XCharts
set { if (PropertyUtil.SetStruct(ref m_MaxPainter, value < 0 ? 1 : value)) SetVerticesDirty(); }
}
/// <summary>
/// Painter是否逆序。逆序时index大的serie最先绘制。
/// </summary>
public bool reversePainter
{
get { return m_ReversePainter; }
set { if (PropertyUtil.SetStruct(ref m_ReversePainter, value)) SetVerticesDirty(); }
}
/// <summary>
/// Curve smoothing factor. By adjusting the smoothing coefficient, the curvature of the curve can be changed,
/// and different curves with slightly different appearance can be obtained.
/// 曲线平滑系数。通过调整平滑系数可以改变曲线的曲率,得到外观稍微有变化的不同曲线。
@@ -99,6 +108,7 @@ namespace XCharts
public void Copy(Settings settings)
{
m_ReversePainter = settings.reversePainter;
m_MaxPainter = settings.maxPainter;
m_LineSmoothStyle = settings.lineSmoothStyle;
m_LineSmoothness = settings.lineSmoothness;
@@ -119,6 +129,7 @@ namespace XCharts
{
return new Settings()
{
m_ReversePainter = false,
m_MaxPainter = XChartsSettings.maxPainter,
m_LineSmoothStyle = XChartsSettings.lineSmoothStyle,
m_LineSmoothness = XChartsSettings.lineSmoothness,

View File

@@ -321,8 +321,9 @@ namespace XCharts
var sizeDelta = new Vector2(m_GraphWidth, m_GraphHeight);
for (int i = 0; i < settings.maxPainter; i++)
{
var painter = ChartHelper.AddPainterObject("painter_" + i, transform, m_GraphMinAnchor,
m_GraphMaxAnchor, m_GraphPivot, sizeDelta, chartHideFlags, 2 + i);
var index = settings.reversePainter ? settings.maxPainter - 1 - i : i;
var painter = ChartHelper.AddPainterObject("painter_" + index, transform, m_GraphMinAnchor,
m_GraphMaxAnchor, m_GraphPivot, sizeDelta, chartHideFlags, 2 + index);
painter.index = m_PainterList.Count;
painter.type = Painter.Type.Serie;
painter.onPopulateMesh = OnDrawPainterSerie;

View File

@@ -129,6 +129,8 @@ namespace XCharts
}
}
private void CheckTextMeshPro()
{
#if dUI_TextMeshPro

View File

@@ -46,11 +46,11 @@ namespace XCharts
{
gameObject.SetActive(flag);
}
// var higFlags = !flag || !isDebugMode ? HideFlags.HideInHierarchy : HideFlags.None;
// if (gameObject.hideFlags != higFlags)
// {
// gameObject.hideFlags = hideFlags;
// }
var hideFlags = flag ? HideFlags.None : HideFlags.HideInHierarchy;
if (gameObject.hideFlags != hideFlags)
{
gameObject.hideFlags = hideFlags;
}
}
protected override void Awake()