mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-29 12:48:47 +00:00
修复Candlesticks效果不对的问题 (#313)
This commit is contained in:
@@ -73,6 +73,7 @@ slug: /changelog
|
||||
|
||||
## master
|
||||
|
||||
* (2024.04.12) 修复`Candlesticks`效果不对的问题 (#313)
|
||||
* (2024.03.20) 增加`Tooltip`的`triggerOn`设置触发条件
|
||||
* (2024.03.19) 修复`Pie`在设置`ItemStyle`的`opacity`时颜色不对的问题 (#309)
|
||||
|
||||
|
||||
@@ -17,13 +17,17 @@ namespace XCharts.Runtime
|
||||
{
|
||||
var serie = chart.AddSerie<Candlestick>(serieName);
|
||||
var defaultDataCount = 5;
|
||||
for (int i = 0; i < defaultDataCount; i++)
|
||||
var lastValue = 50d;
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
var open = Random.Range(20, 60);
|
||||
var close = Random.Range(40, 90);
|
||||
var lowest = Random.Range(0, 50);
|
||||
var heighest = Random.Range(50, 100);
|
||||
var open = lastValue;
|
||||
var close = open + Random.Range(-20, 20);
|
||||
var min = open < close ? open : close;
|
||||
var max = open > close ? open : close;
|
||||
var lowest = min + Random.Range(-10, -10);
|
||||
var heighest = max + Random.Range(10, 10);
|
||||
chart.AddData(serie.index, i, open, close, lowest, heighest);
|
||||
lastValue = close;
|
||||
}
|
||||
return serie;
|
||||
}
|
||||
|
||||
@@ -145,11 +145,23 @@ namespace XCharts.Runtime
|
||||
float currHig = AnimationStyleHelper.CheckDataAnimation(chart, serie, i, barHig);
|
||||
Vector3 plb, plt, prt, prb, top;
|
||||
|
||||
plb = new Vector3(pX + gap + borderWidth, pY + borderWidth);
|
||||
plt = new Vector3(pX + gap + borderWidth, pY + currHig - borderWidth);
|
||||
prt = new Vector3(pX + gap + barWidth - borderWidth, pY + currHig - borderWidth);
|
||||
prb = new Vector3(pX + gap + barWidth - borderWidth, pY + borderWidth);
|
||||
top = new Vector3(pX + gap + barWidth / 2, pY + currHig - borderWidth);
|
||||
var offset = 2 * borderWidth;
|
||||
if (isRise)
|
||||
{
|
||||
plb = new Vector3(pX + gap + offset, pY + offset);
|
||||
plt = new Vector3(pX + gap + offset, pY + currHig - offset);
|
||||
prt = new Vector3(pX + gap + barWidth - offset, pY + currHig - offset);
|
||||
prb = new Vector3(pX + gap + barWidth - offset, pY + offset);
|
||||
top = new Vector3(pX + gap + barWidth / 2, pY + currHig - offset);
|
||||
}
|
||||
else
|
||||
{
|
||||
plb = new Vector3(pX + gap + offset, pY - offset);
|
||||
plt = new Vector3(pX + gap + offset, pY + currHig + offset);
|
||||
prt = new Vector3(pX + gap + barWidth - offset, pY + currHig + offset);
|
||||
prb = new Vector3(pX + gap + barWidth - offset, pY - offset);
|
||||
top = new Vector3(pX + gap + barWidth / 2, pY + currHig + offset);
|
||||
}
|
||||
if (serie.clip)
|
||||
{
|
||||
plb = chart.ClampInGrid(grid, plb);
|
||||
|
||||
@@ -17,16 +17,17 @@ namespace XCharts.Runtime
|
||||
public static Serie AddDefaultSerie(BaseChart chart, string serieName)
|
||||
{
|
||||
var serie = chart.AddSerie<SimplifiedCandlestick>(serieName);
|
||||
|
||||
var lastValue = 50d;
|
||||
for (int i = 0; i < 50; i++)
|
||||
{
|
||||
lastValue += UnityEngine.Random.Range(-10, 20);
|
||||
var open = lastValue + Random.Range(-10, 5);
|
||||
var close = lastValue + Random.Range(-5, 10);
|
||||
var lowest = lastValue + Random.Range(-15, -10);
|
||||
var heighest = lastValue + Random.Range(10, 20);
|
||||
var open = lastValue;
|
||||
var close = open + Random.Range(-20, 20);
|
||||
var min = open < close ? open : close;
|
||||
var max = open > close ? open : close;
|
||||
var lowest = min + Random.Range(-10, -10);
|
||||
var heighest = max + Random.Range(10, 10);
|
||||
chart.AddData(serie.index, i, open, close, lowest, heighest);
|
||||
lastValue = close;
|
||||
}
|
||||
return serie;
|
||||
}
|
||||
|
||||
@@ -144,11 +144,23 @@ namespace XCharts.Runtime
|
||||
float currHig = AnimationStyleHelper.CheckDataAnimation(chart, serie, i, barHig);
|
||||
Vector3 plb, plt, prt, prb, top;
|
||||
|
||||
plb = new Vector3(pX + gap + borderWidth, pY + borderWidth);
|
||||
plt = new Vector3(pX + gap + borderWidth, pY + currHig - borderWidth);
|
||||
prt = new Vector3(pX + gap + barWidth - borderWidth, pY + currHig - borderWidth);
|
||||
prb = new Vector3(pX + gap + barWidth - borderWidth, pY + borderWidth);
|
||||
top = new Vector3(pX + gap + barWidth / 2, pY + currHig - borderWidth);
|
||||
var offset = 2 * borderWidth;
|
||||
if (isRise)
|
||||
{
|
||||
plb = new Vector3(pX + gap + offset, pY + offset);
|
||||
plt = new Vector3(pX + gap + offset, pY + currHig - offset);
|
||||
prt = new Vector3(pX + gap + barWidth - offset, pY + currHig - offset);
|
||||
prb = new Vector3(pX + gap + barWidth - offset, pY + offset);
|
||||
top = new Vector3(pX + gap + barWidth / 2, pY + currHig - offset);
|
||||
}
|
||||
else
|
||||
{
|
||||
plb = new Vector3(pX + gap + offset, pY - offset);
|
||||
plt = new Vector3(pX + gap + offset, pY + currHig + offset);
|
||||
prt = new Vector3(pX + gap + barWidth - offset, pY + currHig + offset);
|
||||
prb = new Vector3(pX + gap + barWidth - offset, pY - offset);
|
||||
top = new Vector3(pX + gap + barWidth / 2, pY + currHig + offset);
|
||||
}
|
||||
// if (serie.clip)
|
||||
// {
|
||||
// plb = chart.ClampInGrid(grid, plb);
|
||||
|
||||
Reference in New Issue
Block a user