/ / Изчислява трансформация - произход от оригинални и мащабирани кутии - css3, transform

Изчислете трансформация-произход от оригинални и мащабирани кутии - css3, трансформирайте

Въз основа на оригинален rect1 (x1, y1, w1, h1) и aизвестен мащабен rect2 (x2, y2, w2, h2) Каква е формулата, за да разберете какъв трансформационен произход е бил използван? Имам нужда от формула за многократна употреба, защото rect2 може да се постави навсякъде.

Казано по друг начин, аз знам границите на малък правоъгълник и искам той да премине към по-голям правоъгълник, като приложи правилните координати на трансформиращия произход (в px или%).

Отговори:

2 за отговор № 1

В прост мащаб, съотношенията между разстоянията x1 -> tx и tx -> (x1 + w1), където координатите на трансформиращия се произход "s x е tx, остават същите след скалата.

(tx-x1) / w1 = (tx-x2) / w2

решавайки за tx, получавате:

tx = (w2 / (w2-w1)) * (x1 - (x2 * w1) / w2)

Аналогичната формула ще доведе до това.

(Имайте предвид, че ако използвате перспектива с zтрансформирайте, тогава тази формула ще бъде погрешна и ако не знаете и вашия перспективен произход, тогава аз вярвам, че резултатът ще бъде неопределен, защото ще има безкрайни комбинации от произход на перспектива и трансформиране на произхода, които ще дадат същия резултат. знам перспективен произход, но математиката все още е доста сложна.)