@nativescript-community/ui-chart
Version:
A powerful chart / graph plugin, supporting line, bar, pie, radar, bubble, and candlestick charts as well as scaling, panning and animations.
43 lines • 1.99 kB
JavaScript
import { Path, Style } from '@nativescript-community/ui-canvas';
/**
* Created by wajdic on 15/06/2016.
* Created at Time 09:08
*/
export class TriangleShapeRenderer {
renderShape(c, dataSet, viewPortHandler, posX, posY, renderPaint) {
const shapeSize = dataSet.scatterShapeSize;
const shapeHalf = shapeSize / 2;
const shapeHoleSizeHalf = dataSet.scatterShapeHoleRadius;
const shapeHoleSize = shapeHoleSizeHalf * 2;
const shapeStrokeSize = (shapeSize - shapeHoleSize) / 2;
const shapeHoleColor = dataSet.scatterShapeHoleColor;
renderPaint.setStyle(Style.FILL);
// create a triangle path
const tri = TriangleShapeRenderer.mTrianglePathBuffer;
tri.reset();
tri.moveTo(posX, posY - shapeHalf);
tri.lineTo(posX + shapeHalf, posY + shapeHalf);
tri.lineTo(posX - shapeHalf, posY + shapeHalf);
if (shapeSize > 0.0) {
tri.lineTo(posX, posY - shapeHalf);
tri.moveTo(posX - shapeHalf + shapeStrokeSize, posY + shapeHalf - shapeStrokeSize);
tri.lineTo(posX + shapeHalf - shapeStrokeSize, posY + shapeHalf - shapeStrokeSize);
tri.lineTo(posX, posY - shapeHalf + shapeStrokeSize);
tri.lineTo(posX - shapeHalf + shapeStrokeSize, posY + shapeHalf - shapeStrokeSize);
}
tri.close();
c.drawPath(tri, renderPaint);
tri.reset();
if (shapeSize > 0.0 && shapeHoleColor) {
renderPaint.setColor(shapeHoleColor);
tri.moveTo(posX, posY - shapeHalf + shapeStrokeSize);
tri.lineTo(posX + shapeHalf - shapeStrokeSize, posY + shapeHalf - shapeStrokeSize);
tri.lineTo(posX - shapeHalf + shapeStrokeSize, posY + shapeHalf - shapeStrokeSize);
tri.close();
c.drawPath(tri, renderPaint);
tri.reset();
}
}
}
TriangleShapeRenderer.mTrianglePathBuffer = new Path();
//# sourceMappingURL=TriangleShapeRenderer.js.map