mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-21 07:50:16 +00:00
增加BaseChart的TriggerTooltip()接口尝试触发ToolTip
This commit is contained in:
@@ -204,6 +204,7 @@ Inherits or Implemented: [BaseGraph](#basegraph),[ISerializationCallbackReceiver
|
||||
|CanAddChartComponent()||public bool CanAddChartComponent(Type type)|
|
||||
|CanAddSerie()||public bool CanAddSerie(Type type)|
|
||||
|CanAddSerie<T>()||public bool CanAddSerie<T>() where T : Serie|
|
||||
|CancelTooltip()|v3.7.0|public void CancelTooltip()<br/>cancel tooltip. |
|
||||
|CanMultipleComponent()||public bool CanMultipleComponent(Type type)|
|
||||
|ClampInChart()||public void ClampInChart(ref Vector3 pos)|
|
||||
|ClampInGrid()||public Vector3 ClampInGrid(GridCoord grid, Vector3 pos)|
|
||||
@@ -319,6 +320,8 @@ Inherits or Implemented: [BaseGraph](#basegraph),[ISerializationCallbackReceiver
|
||||
|SetSeriePainterMaterial()||public void SetSeriePainterMaterial(Material material)<br/>设置Serie Painter的材质球 |
|
||||
|SetTopPainterMaterial()||public void SetTopPainterMaterial(Material material)<br/>设置Top Painter的材质球 |
|
||||
|SetUpperPainterMaterial()||public void SetUpperPainterMaterial(Material material)<br/>设置Upper Painter的材质球 |
|
||||
|TriggerTooltip()|v3.7.0|public bool TriggerTooltip(int dataIndex)<br/>trigger tooltip by data index. |
|
||||
|TriggerTooltip()|v3.7.0|public bool TriggerTooltip(Vector3 localPosition)<br/>trigger tooltip by chart local position. |
|
||||
|TryAddChartComponent()||public bool TryAddChartComponent(Type type)|
|
||||
|TryAddChartComponent<T>()||public bool TryAddChartComponent<T>() where T : MainComponent|
|
||||
|TryAddChartComponent<T>()||public bool TryAddChartComponent<T>(out T component) where T : MainComponent|
|
||||
@@ -355,6 +358,8 @@ Inherits or Implemented: [MaskableGraphic](#maskablegraphic),[IPointerDownHandle
|
||||
|onPointerUp||public Action<PointerEventData, BaseGraph> onPointerUp<br/>鼠标弹起回调。 |
|
||||
|onScroll||public Action<PointerEventData, BaseGraph> onScroll<br/>鼠标滚动回调。 |
|
||||
|CheckWarning()||public string CheckWarning()<br/>检测警告信息。 |
|
||||
|LocalPointToScreenPoint()|v3.7.0|public Vector2 LocalPointToScreenPoint(Vector2 localPoint)<br/>chart local point to screen point. |
|
||||
|LocalPointToWorldPoint()|v3.7.0|public Vector2 LocalPointToWorldPoint(Vector2 localPoint)<br/>chart local point to world point. |
|
||||
|OnBeginDrag()||public virtual void OnBeginDrag(PointerEventData eventData)|
|
||||
|OnDrag()||public virtual void OnDrag(PointerEventData eventData)|
|
||||
|OnEndDrag()||public virtual void OnEndDrag(PointerEventData eventData)|
|
||||
|
||||
@@ -204,6 +204,7 @@ Inherits or Implemented: [BaseGraph](#basegraph),[ISerializationCallbackReceiver
|
||||
|CanAddChartComponent()||public bool CanAddChartComponent(Type type)|
|
||||
|CanAddSerie()||public bool CanAddSerie(Type type)|
|
||||
|CanAddSerie<T>()||public bool CanAddSerie<T>() where T : Serie|
|
||||
|CancelTooltip()|v3.7.0|public void CancelTooltip()<br/>取消Tooltip. |
|
||||
|CanMultipleComponent()||public bool CanMultipleComponent(Type type)|
|
||||
|ClampInChart()||public void ClampInChart(ref Vector3 pos)|
|
||||
|ClampInGrid()||public Vector3 ClampInGrid(GridCoord grid, Vector3 pos)|
|
||||
@@ -319,6 +320,8 @@ Inherits or Implemented: [BaseGraph](#basegraph),[ISerializationCallbackReceiver
|
||||
|SetSeriePainterMaterial()||public void SetSeriePainterMaterial(Material material)<br/>设置Serie Painter的材质球 |
|
||||
|SetTopPainterMaterial()||public void SetTopPainterMaterial(Material material)<br/>设置Top Painter的材质球 |
|
||||
|SetUpperPainterMaterial()||public void SetUpperPainterMaterial(Material material)<br/>设置Upper Painter的材质球 |
|
||||
|TriggerTooltip()|v3.7.0|public bool TriggerTooltip(int dataIndex)<br/>尝试触发指定数据项的Tooltip. |
|
||||
|TriggerTooltip()|v3.7.0|public bool TriggerTooltip(Vector3 localPosition)<br/>在指定的位置尝试触发Tooltip. |
|
||||
|TryAddChartComponent()||public bool TryAddChartComponent(Type type)|
|
||||
|TryAddChartComponent<T>()||public bool TryAddChartComponent<T>() where T : MainComponent|
|
||||
|TryAddChartComponent<T>()||public bool TryAddChartComponent<T>(out T component) where T : MainComponent|
|
||||
@@ -355,6 +358,8 @@ Inherits or Implemented: [MaskableGraphic](#maskablegraphic),[IPointerDownHandle
|
||||
|onPointerUp||public Action<PointerEventData, BaseGraph> onPointerUp<br/>鼠标弹起回调。 |
|
||||
|onScroll||public Action<PointerEventData, BaseGraph> onScroll<br/>鼠标滚动回调。 |
|
||||
|CheckWarning()||public string CheckWarning()<br/>检测警告信息。 |
|
||||
|LocalPointToScreenPoint()|v3.7.0|public Vector2 LocalPointToScreenPoint(Vector2 localPoint)<br/>图表内坐标转屏幕坐标。 |
|
||||
|LocalPointToWorldPoint()|v3.7.0|public Vector2 LocalPointToWorldPoint(Vector2 localPoint)<br/>图表内坐标转世界坐标。 |
|
||||
|OnBeginDrag()||public virtual void OnBeginDrag(PointerEventData eventData)|
|
||||
|OnDrag()||public virtual void OnDrag(PointerEventData eventData)|
|
||||
|OnEndDrag()||public virtual void OnEndDrag(PointerEventData eventData)|
|
||||
|
||||
@@ -66,6 +66,7 @@ slug: /changelog
|
||||
|
||||
## master
|
||||
|
||||
* (2023.04.14) 增加`BaseChart`的`TriggerTooltip()`接口尝试触发`ToolTip`
|
||||
* (2023.04.12) 优化`RadarCood`设置`startAngle`时文本也跟随调整位置
|
||||
* (2023.04.12) 增加`Radar`对通配符`{b}`的支持
|
||||
* (2023.04.11) 修复动态添加组件时`Inspector`可能异常的问题
|
||||
|
||||
@@ -667,5 +667,64 @@ namespace XCharts.Runtime
|
||||
SerieHelper.GetItemColor(out color, out toColor, serie, null, m_Theme);
|
||||
return color;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// trigger tooltip by data index.
|
||||
/// |尝试触发指定数据项的Tooltip.
|
||||
/// </summary>
|
||||
/// <param name="dataIndex">数据项索引</param>
|
||||
/// <returns></returns>
|
||||
[Since("v3.7.0")]
|
||||
public bool TriggerTooltip(int dataIndex)
|
||||
{
|
||||
var serie = GetSerie(0);
|
||||
if (serie == null) return false;
|
||||
var dataPoints = serie.context.dataPoints;
|
||||
var dataPoint = Vector3.zero;
|
||||
if (dataPoints.Count == 0)
|
||||
{
|
||||
if (serie.dataCount == 0) return false;
|
||||
dataIndex = dataIndex % serie.dataCount;
|
||||
var serieData = serie.GetSerieData(dataIndex);
|
||||
if (serieData == null) return false;
|
||||
dataPoint = serie.GetSerieData(dataIndex).context.position;
|
||||
}
|
||||
else
|
||||
{
|
||||
dataIndex = dataIndex % dataPoints.Count;
|
||||
dataPoint = dataPoints[dataIndex];
|
||||
}
|
||||
return TriggerTooltip(dataPoint);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// trigger tooltip by chart local position.
|
||||
/// |在指定的位置尝试触发Tooltip.
|
||||
/// </summary>
|
||||
/// <param name="localPosition"></param>
|
||||
/// <returns></returns>
|
||||
[Since("v3.7.0")]
|
||||
public bool TriggerTooltip(Vector3 localPosition)
|
||||
{
|
||||
var screenPoint = LocalPointToScreenPoint(localPosition);
|
||||
var eventData = new PointerEventData(EventSystem.current);
|
||||
eventData.position = screenPoint;
|
||||
OnPointerEnter(eventData);
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// cancel tooltip.
|
||||
/// |取消Tooltip.
|
||||
/// </summary>
|
||||
[Since("v3.7.0")]
|
||||
public void CancelTooltip()
|
||||
{
|
||||
var tooltip = GetChartComponent<Tooltip>();
|
||||
if (tooltip != null)
|
||||
{
|
||||
tooltip.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -173,6 +173,32 @@ namespace XCharts.Runtime
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// chart local point to screen point.
|
||||
/// |图表内坐标转屏幕坐标。
|
||||
/// </summary>
|
||||
/// <param name="localPoint">图表内的坐标</param>
|
||||
/// <returns>屏幕坐标</returns>
|
||||
[Since("v3.7.0")]
|
||||
public Vector2 LocalPointToScreenPoint(Vector2 localPoint)
|
||||
{
|
||||
var cam = canvas.renderMode == RenderMode.ScreenSpaceOverlay ? null : canvas.worldCamera;
|
||||
var wordPoint = rectTransform.TransformPoint(localPoint);
|
||||
return RectTransformUtility.WorldToScreenPoint(cam, wordPoint);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// chart local point to world point.
|
||||
/// |图表内坐标转世界坐标。
|
||||
/// </summary>
|
||||
/// <param name="localPoint">图表内的坐标</param>
|
||||
/// <returns>世界坐标</returns>
|
||||
[Since("v3.7.0")]
|
||||
public Vector2 LocalPointToWorldPoint(Vector2 localPoint)
|
||||
{
|
||||
return rectTransform.TransformPoint(localPoint);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存图表为图片。
|
||||
/// </summary>
|
||||
|
||||
@@ -233,10 +233,12 @@ namespace XCharts.Runtime
|
||||
serieData.context.currentAngle = serieData.context.toAngle;
|
||||
}
|
||||
var halfDegree = (serieData.context.toAngle - startDegree) / 2;
|
||||
var halfRadius = serie.context.insideRadius + (serieData.context.outsideRadius - serie.context.insideRadius) / 2;
|
||||
serieData.context.halfAngle = startDegree + halfDegree;
|
||||
serieData.context.angle = startDegree + halfDegree;
|
||||
serieData.context.offsetCenter = serie.context.center;
|
||||
serieData.context.insideRadius = serie.context.insideRadius;
|
||||
serieData.context.position = ChartHelper.GetPosition(serie.context.center, serieData.context.halfAngle, halfRadius);
|
||||
if (offset > 0)
|
||||
{
|
||||
var currRad = serieData.context.halfAngle * Mathf.Deg2Rad;
|
||||
|
||||
Reference in New Issue
Block a user