I am trying to resize a rotated shape in a resizable component.
For resizing the component after rotating the shape I am using:
int newWidth = (int) ((rect.width * Math.abs(Math.cos(angle))) + (rect.height * Math.abs(Math.sin(angle))));
int newHeight = (int) ((rect.height * Math.abs(Math.cos(angle))) + (rect.width * Math.abs(Math.sin(angle))));
That works fine.
For resizing the rotated shape into the component, so that the rotated shape bounds stays in the component I am using:
shapeBounds.width = ((int)((componentBounds.width * Math.abs(Math.cos(angle))) + (int)((componentBounds.height * Math.abs(Math.sin(angle)))))) - (int)(componentBounds.width * Math.abs(Math.sin(angle)));
shapeBounds.height = ((int)((componentBounds.height * Math.abs(Math.cos(angle))) + (int)((componentBounds.width * Math.abs(Math.sin(angle)))))) - (int)(componentBounds.height * Math.abs(Math.cos(angle)));
Unfortunately, that does not work properly and the shape dimension is not resizing accurately to the component dimension.
Does any one has an idea how to solve that?
Best regards and thanks a million.
Resize rotated shape in a resizable component
question from:
https://stackoverflow.com/questions/65883819/java-resize-rotated-shape-in-a-resizable-component 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…