Tôi có hình chữ nhật nguồn và hình chữ nhật đích. Tôi cần phải tìm quy mô tối đa mà nguồn có thể được thu nhỏ trong khi lắp trong hình chữ nhật đích và duy trì tỷ lệ khung hình gốc của nó.Làm cách nào để chia tỷ lệ hình chữ nhật thành kích thước tối đa trong hình chữ nhật khác?
Google tìm thấy one cách để làm điều đó nhưng tôi không chắc liệu nó có hoạt động trong mọi trường hợp hay không. Đây là giải pháp pha chế tại nhà của tôi:
- Tính chiều cao/chiều rộng cho mỗi hình chữ nhật. Điều này cho các sườn của các đường chéo
msrc
vàmdest
. - Nếu
msrc < mdst
, nguồn quy mô rộng để phù hợp với điểm đến rộng (và chiều cao quy mô của các tỷ lệ giống nhau) - Nếu không, nguồn quy mô chiều cao để phù hợp với điểm đến chiều cao (và quy mô chiều rộng bằng cùng tỷ lệ)
Tìm các giải pháp khả thi khác cho vấn đề này. Tôi thậm chí không chắc chắn nếu thuật toán của tôi hoạt động trong mọi trường hợp!
Ngọt ngào! Khi bạn có tỷ lệ, hãy sử dụng các thứ nguyên này để có được thứ nguyên cuối cùng: 'width = src.width * scale' và' height = src.height * scale' –
Thay đổi min bằng max nếu bạn muốn bao phủ toàn bộ khu vực đích. – Glogo
Cùng một giải pháp, nhưng với tên rõ ràng hơn với tôi: 'scale = min (maxWidth/actualWidth, maxHeight/actualHeight)', 'newWidth = actualWidth * scale',' newHeight = actualHeight * scale'. –