Skip to content

Commit bb61b7a

Browse files
committed
feat: shape circle
1 parent 7099daf commit bb61b7a

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

src/shapes/circle.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { PercentLength, Utils } from '@nativescript/core';
2+
import { Canvas } from '../canvas';
3+
import Rectangle from './rectangle';
4+
import { percentLengthProperty } from './shape';
5+
6+
export default class Circle extends Rectangle {
7+
drawOnCanvas(canvas: Canvas) {
8+
const availableWidth = Utils.layout.toDevicePixels(canvas.getWidth());
9+
const availableHeight = Utils.layout.toDevicePixels(canvas.getHeight());
10+
11+
canvas.drawCircle(Utils.layout.toDeviceIndependentPixels(PercentLength.toDevicePixels(this.left, 0, availableWidth)),
12+
Utils.layout.toDeviceIndependentPixels(PercentLength.toDevicePixels(this.top, 0, availableHeight)), Utils.layout.toDeviceIndependentPixels(PercentLength.toDevicePixels(this.radius, 0, availableWidth)), this.paint);
13+
}
14+
@percentLengthProperty radius: PercentLength = 0;
15+
}

src/vue/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ const Plugin = {
55
Vue.registerElement('Arc', () => require('../shapes/arc').default, {});
66
Vue.registerElement('Text', () => require('../shapes/text').default, {});
77
Vue.registerElement('Line', () => require('../shapes/line').default, {});
8+
Vue.registerElement('Circle', () => require('../shapes/circle').default, {});
89
}
910
};
1011

0 commit comments

Comments
 (0)