mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-20 15:30:09 +00:00
增加Symbol的EmptyTriangle和EmptyDiamond的支持,优化Symbol表现效果
This commit is contained in:
@@ -49,53 +49,92 @@ namespace XCharts.Runtime
|
||||
{
|
||||
if (tickness > 0)
|
||||
{
|
||||
UGL.DrawRoundRectangle(vh, pos, symbolSize, symbolSize, color, color, 0, cornerRadius, true);
|
||||
UGL.DrawRoundRectangle(vh, pos, symbolSize * 2, symbolSize * 2, color, color, 0, cornerRadius, true);
|
||||
UGL.DrawBorder(vh, pos, symbolSize, symbolSize, tickness, borderColor, 0, cornerRadius);
|
||||
}
|
||||
else
|
||||
UGL.DrawRoundRectangle(vh, pos, symbolSize, symbolSize, color, color, 0, cornerRadius, true);
|
||||
UGL.DrawRoundRectangle(vh, pos, symbolSize * 2, symbolSize * 2, color, color, 0, cornerRadius, true);
|
||||
}
|
||||
break;
|
||||
case SymbolType.EmptyRect:
|
||||
if (gap > 0)
|
||||
{
|
||||
UGL.DrawSquare(vh, pos, symbolSize + gap, backgroundColor);
|
||||
UGL.DrawBorder(vh, pos, symbolSize / 2, symbolSize / 2, tickness, color);
|
||||
UGL.DrawBorder(vh, pos, symbolSize * 2, symbolSize * 2, tickness, color);
|
||||
}
|
||||
else
|
||||
{
|
||||
UGL.DrawBorder(vh, pos, symbolSize / 2, symbolSize / 2, tickness, color);
|
||||
UGL.DrawBorder(vh, pos, symbolSize * 2 - tickness * 2, symbolSize * 2 - tickness * 2, tickness, color);
|
||||
}
|
||||
break;
|
||||
case SymbolType.Triangle:
|
||||
case SymbolType.EmptyTriangle:
|
||||
if (gap > 0)
|
||||
{
|
||||
UGL.DrawTriangle(vh, pos, symbolSize + gap, backgroundColor);
|
||||
UGL.DrawTriangle(vh, pos, symbolSize, color, toColor);
|
||||
UGL.DrawTriangle(vh, pos, symbolSize * 1.4f + gap * 2f, backgroundColor);
|
||||
UGL.DrawTriangle(vh, pos, symbolSize * 1.4f, color, toColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
UGL.DrawTriangle(vh, pos, symbolSize, color, toColor);
|
||||
UGL.DrawTriangle(vh, pos, symbolSize * 1.4f, color, toColor);
|
||||
}
|
||||
if (type == SymbolType.EmptyTriangle)
|
||||
{
|
||||
UGL.DrawTriangle(vh, pos, symbolSize * 1.4f - tickness * 2, backgroundColor);
|
||||
}
|
||||
break;
|
||||
case SymbolType.Diamond:
|
||||
case SymbolType.EmptyDiamond:
|
||||
var xRadius = symbolSize;
|
||||
var yRadius = symbolSize * 1.5f;
|
||||
if (gap > 0)
|
||||
{
|
||||
UGL.DrawDiamond(vh, pos, symbolSize + gap, backgroundColor);
|
||||
UGL.DrawDiamond(vh, pos, symbolSize, color, toColor);
|
||||
UGL.DrawDiamond(vh, pos, xRadius + gap, yRadius + gap, backgroundColor, backgroundColor);
|
||||
UGL.DrawDiamond(vh, pos, xRadius, yRadius, color, toColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
UGL.DrawDiamond(vh, pos, symbolSize, color, toColor);
|
||||
UGL.DrawDiamond(vh, pos, xRadius, yRadius, color, toColor);
|
||||
}
|
||||
if (type == SymbolType.EmptyDiamond)
|
||||
{
|
||||
UGL.DrawDiamond(vh, pos, xRadius - tickness, (symbolSize - tickness) * 1.5f, backgroundColor, backgroundColor);
|
||||
}
|
||||
break;
|
||||
case SymbolType.Arrow:
|
||||
case SymbolType.EmptyArrow:
|
||||
var arrowWidth = symbolSize * 2;
|
||||
var arrowHeight = arrowWidth * 1.5f;
|
||||
var arrowOffset = 0;
|
||||
var arrowDent = arrowWidth / 3.3f;
|
||||
if (gap > 0)
|
||||
{
|
||||
arrowWidth = (symbolSize + gap) * 2;
|
||||
arrowHeight = arrowWidth * 1.5f;
|
||||
arrowOffset = 0;
|
||||
arrowDent = arrowWidth / 3.3f;
|
||||
var dir = (pos - startPos).normalized;
|
||||
var sharpPos = pos + gap * dir;
|
||||
UGL.DrawArrow(vh, startPos, sharpPos, arrowWidth, arrowHeight,
|
||||
arrowOffset, arrowDent, backgroundColor);
|
||||
}
|
||||
arrowWidth = symbolSize * 2;
|
||||
arrowHeight = arrowWidth * 1.5f;
|
||||
arrowOffset = 0;
|
||||
arrowDent = arrowWidth / 3.3f;
|
||||
UGL.DrawArrow(vh, startPos, pos, arrowWidth, arrowHeight,
|
||||
arrowOffset, arrowDent, color);
|
||||
if (type == SymbolType.EmptyArrow)
|
||||
{
|
||||
arrowWidth = (symbolSize - tickness) * 2;
|
||||
arrowHeight = arrowWidth * 1.5f;
|
||||
arrowOffset = 0;
|
||||
arrowDent = arrowWidth / 3.3f;
|
||||
var dir = (pos - startPos).normalized;
|
||||
var sharpPos = pos - tickness * dir;
|
||||
UGL.DrawArrow(vh, startPos, sharpPos, arrowWidth, arrowHeight,
|
||||
arrowOffset, arrowDent, backgroundColor);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user