AlexanderProkopenko, Ну это всеравно не правильно, то что перемещается picturebox. Picturebox должен служить просто рендером, окном для отображения результата, а перемещать нужно изображения на битмапе, перерисовывая его, а я так понимаю вы рисуете на форме.
AlexanderProkopenko, Не понимаю зачем перемещать, picturebox.
Ну если у вас перещаются только picturebox, и прямоугольник рисуется правильно просто не в том месте, то всего скорее вам нужно добавлять некий offset к рисованию прямоугольника. Например если координаты мыши берутся от левого верхнего угла формы, то offset будет равен координатом смещения picturebox относительно левого верхнего угла, крч + координаты picturebox. Точнее их нужно не прибавлять , а отнимать
AlexanderProkopenko, Вот пример на javascript. Есть два одинаковые холста, оба размерами 100х100, на обеих нарисованы квадраты размером 20х20. Всё одинаково, но второй холст принудительно растягиваем в два раза по ширине и смотрим, что квадрат также по ширине растянулся в два раза!
AlexanderProkopenko, Зачем вы растягиваете, изменяйте размеры хоста. Тоесть был битмап 100х100, если нужно увеличить, не увеличивайте размер контейнера(pictureBox'а). Сначала измените размер битмапа на новый, например 200х200, а потом измените размеры picturebox'a. Я конечно код не видел это так по моим предположениям как у там может быть сделанно. Иначе это получается не пеинт, а срань какая-то, делайте правильно
Сергей Сергей, херня этот html2canvas, если стили будут хоть немного сложные, всё поедет и не будет соответствовать действительности. Расширением для хрома такое врядли нормально сделаешь.
В код не смотрел ну проблема ясна и так, если начинает неправильно отображаться после растягивания и перемещния, это происходит из-за того что вы трансформирует холст, но не применяете эти изменения для инструмента рисования. Не нужно трансформировать холст.
Тоесть например если у вас холст размером 100х100 и вы рисуете в нормальных пропорциях квадрат 5х5, то он и будет отображаться как 5х5, а если вы растянуть хост до 100х200 (но фактически он 100х100), тоесть по иксу всё будет растягиваться в 2 два раза. И нарисованный квадрат будет отображаться как 5х10 хотя фактические размеры его 5х5. Если обратно сжать, то всё будет ок.
Тоесть или меняйте фактически размеры хоста на реальные 100х200 пикселей без растягивания или применяйте такое растягивание к инструментам, тот же жёлтый квадрат нужно будет растягивать по иксе в два раза. К перемещениям это также относится!
var str = '/project/:projectId/menu/:menuId';
let projectId = getVal(str,"project");
let menuId = getVal(str,"menu");
function getVal(str,attr){
let reg = new RegExp(`/${attr}/:([^/]+)`,"gi");
return reg.exec(str)[1];
}
Ну смысле зачем. Ты создаешь персону, и тебе нужно получить название компании персоны. Если company не инициализовано, то там null, ты обращаешься пытаясь получить компанию, и у тебя всё ломается. А так у тебя все персоны по умолчанию имеют компанию unknown. Можно обращаться сразу к этому свойству без проверок, если конечно кто-то принудительно не запишет туда null.
Убери это присвоение и вызови print, и увидишь ошибку.
Его можно сократить до if($request->input("type") !== "create")
Потому-что если type будет bet или withdraw или чёрт лысый, оно всегда будет верным потому-что оно не равно create!!! Возможно там нужно было &&....
Осталось только requestAnimationFrame :D
Ну так ты при старте секундомера запоминай текущее время, timestamp запиши. И на каждом обновлении опять бери текущий timestamp и вычитай время начала, чтобы получить точное пройденное время.