См. Проблему, показанную здесь: https://i.stack.imgur.com/fuy8c.png
У меня есть изображение, повернутое на угол и растянутое, чтобы соответствовать как нижней, так и верхней линии. У меня вопрос: как найти X в том месте, где изображение касается верхней строки.
JsFiddle с примером http://jsfiddle.net/waaentz/htrqdwjp/43/
X (ошибочно) рассчитано в строке 28
let angle = 0; // Is dynamic
const width = 500;
const height = 100;
const padding = 100;
const canvas = document.createElement("canvas");
const stage = new createjs.Stage(canvas);
const img = new Image();
const bitmap = new createjs.Bitmap(img);
const baseGrid = new createjs.Shape();
const point = new createjs.Shape();
// Update angle each 30ms
setInterval(()=>{
if (angle++ > 90) angle = 0;
draw();
}, 30)
// Draw when image is loaded (arrow image)
img.src = getBase64();
img.addEventListener("load", ()=>{
draw();
});
// Draw function
function draw(){
const magicScaleFormular = 1 / Math.cos(angle * Math.PI / 180)
const magicXFormular = width - (width / magicScaleFormular); // <-- X formular
stage.y = padding;
stage.addChild(baseGrid, bitmap, point);
Object.assign(canvas, {width, height: height + (padding * 2)});
bitmap.regX = (img.width / 2);
bitmap.regY = img.height;
bitmap.y = height;
bitmap.rotation = angle;
bitmap.scaleY = magicScaleFormular;
point.graphics.clear()
.beginFill("red")
.drawCircle(0,0,10);
point.x = magicXFormular;
baseGrid.graphics
.beginStroke("red")
.setStrokeStyle(4)
.moveTo(0,0)
.lineTo(width, 0)
.moveTo(0, height)
.lineTo(width, height)
stage.update();
document.body.append(canvas);
}
Этот вопрос связан с этим: Поиск размера повернутого изображения для соответствия верхней линии на основе угла