首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CGPoint分配错误

CGPoint分配错误
EN

Stack Overflow用户
提问于 2012-09-14 18:23:40
回答 1查看 276关注 0票数 1

我的代码:

代码语言:javascript
复制
CGFloat scaleFactor = newSize.width / oldSize.width;
CGFloat newCenterX = center_.x * scaleFactor;
CGFloat newCenterY = center_.y * scaleFactor;

CGPoint newCenter = CGPointMake(newCenterX, newCenterY);
//newCenter.x = newCenterX;
//newCenter.y = newCenterY;

CGFloat newRaduis = raduis_ * scaleFactor;
newCenter.y += newSize.height - ceilf(scaleFactor) * oldSize.height;
NSLog(@"Convertion from %@ to %@", NSStringFromCGSize(oldSize), NSStringFromCGSize(newSize));
NSLog(@"old center = %@, old radius = %f", NSStringFromCGPoint(center_), raduis_);
NSLog(@"new center = %@, new radius = %f", NSStringFromCGPoint(newCenter), newRaduis);
NSLog(@"new center x = %f, new center y = %f", newCenterX, newCenterY);

和输出:

代码语言:javascript
复制
2012-09-14 14:18:35.027 TestApp[425:4b93] Convertion from {1080, 1920} to {320, 415}
2012-09-14 14:18:35.031 TestApp[425:4b93] old center = {246, 822}, old radius = 20.000000
2012-09-14 14:18:35.033 TestApp[425:4b93] new center = {73, -1261}, new radius = 5.925926
2012-09-14 14:18:35.035 TestApp[425:4b93] new center x = 73, new center y = 244

在输出中-新中心= {73,-1261},新半径= 5.925926。为什么中心y值为负值?我做错了什么?

提前感谢您的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-14 19:34:05

错误是由于您的行造成的

代码语言:javascript
复制
newCenter.y += newSize.height - ceilf(scaleFactor) * oldSize.height;

  • scaleFactor是关于1.
  • newSize.height的,所以0.2962等于ceilf(scaleFactor)415oldSize.height1920,所以415 - 1*1920-1505,而newCenter.y += -1505使newCenter.y从<代码>D17更改为<代码>D18=code

因此,在这一行之后,newCenter.y是-1261似乎是合法的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12422620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档