Commit a292b2a3 authored by 罗超's avatar 罗超

优化字体旋转角度,缩放计算

parent 1d2d7a34
......@@ -17,16 +17,16 @@ export const ResolveText = (item: any, index: number,offsetLeft:number,offsetTop
const { colors, styles, alignment, sizes, names, weights } = font
let fontSize = 24.0
let newSizes = sizes?sizes:[12]
//if(value=='12980') console.log(newSizes,transform,extractScale(transform))
if (newSizes && newSizes[0]) {
if (transform.yy !== 1) {
fontSize = (Math.round((newSizes[0] * transform.yy) * 100) * 0.01)
if (transform) {
fontSize = Math.round(newSizes[0] * extractScale(transform))
} else {
fontSize = newSizes[0]
}
}
if(transform){
let angle = Math.atan2(transform.xy,transform.xx)
transformRotate = Math.floor(angle * (180 / Math.PI))
transformRotate = extractRotation(transform)
}
const StyleSheet = item.layer.adjustments.typeTool.obj.engineData.EngineDict.StyleRun.RunArray[0].StyleSheet || {}
......@@ -130,6 +130,26 @@ export const ResolveText = (item: any, index: number,offsetLeft:number,offsetTop
return element
}
const extractScale = (matrix:any) => {
const scaleX = Math.sqrt(matrix.xx * matrix.xx + matrix.xy * matrix.xy);
const scaleY = Math.sqrt(matrix.yx * matrix.yx + matrix.yy * matrix.yy);
return scaleY>scaleX?scaleY:scaleX;
}
const extractRotation = (matrix:any) => {
const a = matrix.xx;
const b = matrix.yx;
const c = matrix.xy;
const d = matrix.yy;
// Calculate rotation in radians
const rotationRadians = Math.atan2(b, a);
// Convert to degrees
const rotationDegrees = rotationRadians * (180 / Math.PI);
return -rotationDegrees;
}
const getGradient = (obj: any) => {
const { GrFl } = obj.data
const angle = GrFl.Angl.value - 90
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment