【发布时间】:2015-12-29 15:31:04
【问题描述】:
需要您的帮助,我已经输入了 CGSize(例如):200x300。并与其他CGSize's = [20x20, 100x100, 150x150, 200x100, 200x250, 300x300...] 排列。
请帮助我找到数组中具有最佳比较百分比的最佳项目(例如它的 200x250)...
我尝试使用枚举器,例如:
CGSize inputSize = CGSizeMake(200, 300);
for (int i = 0; i < array.count; i++)
{
CGSize concurentSize = CGSizeZero;
switch (i)
{
case 0:
{
concurentSize.width = 20;
concurentSize.height = 20;
}
and so on...
float differencePercentWidth = ( concurentSize.width / inputSize.width ) * 100.0;
float differencePercentHeight = ( concurentSize.height / inputSize.height ) * 100.0;
if (differencePercentWidth > 90 && differencePercentHeight > 90)
{
// FOUND best CGSize... stop
break.
}
}
但是,它不起作用,它 differencePercentWidth/differencePercentHeight 可以 > 100 =(
我需要一些可以比较 2 个 CGSize 的百分比匹配的方法或函数...例如:尺寸 200x300 与尺寸 200x250 最匹配...类似:
float matchesInPerсent = CGSizeCompare(firstCGSize, secondCGSize);
//matchesInPerсent = 0.6; // in percents
请帮忙,对不起我的英语,如果您需要更多详细信息,请告诉我。谢谢。
【问题讨论】:
-
基于总像素或每个宽度和高度的最佳比较百分比?
-
宽度和高度差的平方和的平方根可能会为您提供准确的结果。您选择具有最小值的尺寸。
-
只是为了把它调整到 200x300,更合适的是 400x600 还是 200x301?
-
@Jay 是的,宽度和高度之和,但小于或等于 100%。
标签: objective-c xcode geometry cgsize