首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用数学能力,在双精度和整型之间切换变量(android位图)

使用数学能力,在双精度和整型之间切换变量(android位图)
EN

Stack Overflow用户
提问于 2011-05-08 19:08:43
回答 4查看 1.5K关注 0票数 0

我逐个像素地遍历位图,以确定该像素是否在位图上放置的圆圈内。我得到了很好的数学知识来确定这一点,但算法使用的是pow(double,double)。我尝试过强制转换和使用Integer.doubleValue,但都无济于事。有没有人知道如何让pow方法返回sqrt()方法所需的int?centreX和centreY都是整型的。

更新对不起,sqrt返回并需要一个双精度值:)

谢谢,麦特。

代码语言:javascript
复制
for (int i=0; i < bgr.getWidth(); ++i) {
                for (int y=0; y < bgr.getHeight(); ++y) {

                    int aPixel = bgr.getPixel(i,y);

                      if( sqrt( pow(i - centreX, 2) + ( pow(y - centreY, 2) ) ) <= radius ){

                        bgr.setPixel(i,y,Color.MAGENTA);
                    }
                }
            }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-08 19:33:07

谢谢大家,

糟糕的是,来自Math类的pow()方法是静态的,所以需要使用点运算符来静态地访问它。愚蠢的错误:)例如Math.pow(d,d);

票数 1
EN

Stack Overflow用户

发布于 2011-05-08 19:13:59

将代码分成更多行,以便更容易发现导致错误的行:

请记住,这是伪代码:-)

代码语言:javascript
复制
double a = pow(i - centreX, 2);
double b = pow(y - centreY, 2);

int c = (parse to int) (a + b)

int root = sqrt( c )

然后调试这些行以发现错误:-)

票数 0
EN

Stack Overflow用户

发布于 2011-05-08 19:16:04

如果我理解正确,您的问题是如何将double转换为int,为什么不在Math中使用floor或ceil函数

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

https://stackoverflow.com/questions/5927059

复制
相关文章

相似问题

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