Что нового

[Математика] Кто какую функцию хочет в Au3?

Rioran

Everything is possible and achievable.
Сообщения
26
Репутация
2
Всем привет.

Просто интересно - какими математическими функциями было бы полезно пополнить форум?
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Масштабирование чего либо по отношению к чему либо, но так, что бы ни одна из сторон контента не вышла за пределы панели, допустим есть панель 300x200 пикселей и есть контент размером 70x100 пикселей, необходимо узнать ширину контента, если его высота станет равной высоте панели, т.е. 200 пикселей. В этот раз есть панель размером 200x300 пикселей и контент 70x100 пикселей, необходимо узнать ширину контента, если его высота будет равной 300 но, она может быть и не 300, так как нам нужно что бы ширина контента не выходила за рамки панели, т.е. не была более чем 200 пикселей, соответственно нужно рассчитать и высоту, в общем нужно учесть и рассчитать все варианты масштабирования, если же стороны у панели равны, т.е. 500x500 и у контента тоже равны, допустим 250x250, нужно контент растянуть до размеров панели, допустим сделать функцию в которую поступают размеры панели и размеры контента а на выходе получаем Width и Height которые будем применять к контенту.

P.S. даже не так, представьте что есть Flash ролик у которого высота и ширина должны быть определённого размера что бы не было видно артефакты которые попадают в не рабочую часть ролика, и есть некая панель с автоматическим изменением размеров при resize, необходимо рассчитать коэффициент сторон чтобы увеличить/уменьшить ролик на сколько это возможно, не выйти за пределы панели и не было видно артефактов.
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Viktor1703
Уже давно написана (ищи в моей коллекции файл "_ImageResize пропорцианальный.au3")
Код:
; $w1, $h1 - размер квадрата в который картинка должна поместитьcя
; $w2, $h2 - реальный размер картинки
Func _Coor($w1, $h1, $w2, $h2)
	Local $aXY[2] = [0,0], $kX=$w1/$w2, $kY=$h1/$h2
	If $kX>$kY Then
		$aXY[0]=Round($w2*$kY)
		$aXY[1]=$h1
	Else
		$aXY[0]=$w1
		$aXY[1]=Round($h2*$kX)
	EndIf
	Return $aXY
EndFunc
 
Верх