Domanda

Probabilmente puoi vedere dove sto andando con questo - ma esiste un modo facile per generare una CGAffineTransform da due linee - ognuna rappresentata da una coppia di CGPoints:

A[(a1x,a1y), (a2x,a2y)],
B[(b1x,b1y), (b2x,b2y)]

La risultante CGAffineTransform quando applicata alla linea A produrrebbe ovviamente la linea B. Potrebbe potenzialmente comportare traslazione, scala e rotazione.

Certamente spero di essere in grado di scriverlo da solo dopo aver ripassato alcuni trigoni, ma mi chiedevo se fosse già disponibile qualcosa per farlo?

Nota: non ti sto chiedendo di scriverlo per me - non voglio proprio perdere un trucco Core Graphics!

È stato utile?

Soluzione

Sì, ma ci sono almeno quattro soluzioni: due traduzioni e due scale (una per operazione e direzione). Questo senza contare le trasformazioni che traducono entrambe la scala e .

& # 8220; The Math Behind the Matrices & # 8221; , dal Quartz 2D Programming Guide , è una buona panoramica di come funziona ogni operazione; da ciò, dovrebbe essere abbastanza semplice capovolgerlo e creare una matrice per l'operazione e la direzione desiderate.

  

Sicuramente spero di essere in grado di scriverlo da solo dopo aver ripassato alcuni trig & & # 8230;

Non ti servirà tranne la rotazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top