Я создаю модуль, который отображает диаграмму тела, и техник EMS может щелкать по разным частям тела, чтобы рассчитать общую площадь ожога жертвы.
Я собираю координаты на холсте JavaScript на основе функции (щелчка) на холсте, и она отлично работает в ионной лаборатории.
После того, как я развернусь на Android, координаты, кажется, смещены в точку, где это невозможно использовать. Есть ли способ получить согласованные координаты?
Я пытался переместить вещи и оставить холст в статическом размере, но координаты все еще разные.
HTML-файл
<ion-header>
<ion-toolbar>
<ion-buttons slot="start">
<ion-back-button defaultHref="/burntools"></ion-back-button>
</ion-buttons>
<ion-title>Adult Burn Calculator</ion-title>
</ion-toolbar>
</ion-header>
<ion-content no-bounce>
<canvas #canvasEl width="{{this.canvasWd}}" height="400" (touchstart)="touchStart($event)" (touchend)="touchEnd($event)" (click)="clickIt($event)"></canvas>
</ion-content>
<ion-footer class="fixedFooter">
<ion-toolbar>
<ion-buttons>
<ion-button slot="start" (click)="switchSides('front')" color="{{this.frontColor}}">
<ion-icon name="Body"></ion-icon>
Front
</ion-button>
<span style="font-weight: 700;">Burn %: {{this.theScore}}</span>
<ion-button (click)="switchSides('back')" color="{{this.backColor}}" slot="end">
<ion-icon name="body"></ion-icon>
Back
</ion-button>
</ion-buttons>
</ion-toolbar>
</ion-footer>
ts из обработчика кликов
clickIt(ev) {
console.log('Click It');
const canvasPosition = this.canvasElement.getBoundingClientRect();
console.log('x', ev.clientX - canvasPosition.x);
console.log('y', ev.clientY - canvasPosition.y);
const tempX = ev.clientX - canvasPosition.x;
const tempY = ev.clientY - canvasPosition.y;
}
Результаты в ионной лаборатории согласуются, и приложение работает, как и ожидалось. Как только я разверну его на своем устройстве Android, координаты будут значительно меньше.