Я хотел бы определить, принадлежит ли исходное разрешение к указанному соотношению сторон, в C # или VB.NET.
В настоящее время я написал следующее:
/// --------------------------------------------------------------------------
/// <summary>
/// Determine whether the source resolution belongs to the specified aspect ratio.
/// </summary>
/// --------------------------------------------------------------------------
/// <param name="resolution">
/// The source resolution.
/// </param>
///
/// <param name="aspectRatio">
/// The aspect ratio.
/// </param>
/// --------------------------------------------------------------------------
/// <returns>
/// <see langword="true"/> if the source resolution belongs to the specified aspect ratio;
/// otherwise, <see langword="false"/>.
/// </returns>
/// ----------------------------------------------------------------------------------------------------
public static bool ResolutionIsOfAspectRatio(Size resolution, Point aspectRatio) {
return (resolution.Width % aspectRatio.X == 0) &&
(resolution.Height % aspectRatio.Y == 0);
}
VB.NET:
Public Shared Function ResolutionIsOfAspectRatio(resolution As Size,
aspectRatio As Point) As Boolean
Return ((resolution.Width Mod aspectRatio.X) AndAlso
(resolution.Height Mod aspectRatio.Y)) = 0
End Function
Пример использования:
Size resolution = new Size(1920, 1080);
Point aspectRatio = new Point(16, 9);
bool result = ResolutionIsOfAspectRatio(resolution, aspectRatio);
Console.WriteLine(result);
Я просто хочу убедиться, что я не упускаю ничего из концепции соотношения сторон, что может привести к неожиданным результатам при использовании функции Iписал.
Тогда мой вопрос: этот алгоритм подходит для всех случаев? Если нет, какие модификации я должен сделать, чтобы выполнить эту операцию должным образом.
РЕДАКТИРОВАТЬ: я заметил, чтоАлгоритм совершенно неверный, он принимает 640x480 в качестве 16: 9.Я не читал достаточно об основах, как рассчитать это.