当前位置: 首页 > 知识库问答 >
问题:

获取弧/扇区的每个像素

杨良才
2023-03-14

在我的模拟器中,我试图检查弧线的每个像素。圆弧的中心(x&y)、半径和角(半径、电流角和新角)有固定的坐标,所以我可以用颜色填充它来代表它给用户。但是另外,我需要在覆盖的像素上执行一些操作。我所尝试的是:

for (int i = 0; i < newAngle; i++)
  for (int j = 0; j < radius; j++) {
    Point point = new Point((int)(x + j * Math.cos(currentAngle - Math.toRadians(i))), (int)( y + j * Math.sin(currentAngle - Math.toRadians(i))));

check(point.x, point.y);

共有1个答案

澹台啸
2023-03-14

您可以从极坐标切换到笛卡尔坐标,并迭代属于线段的点:

double curCos = Math.cos(currentAngle);
double curSin = Math.sin(currentAngle);
double curTan = curSin/curCos;
double newCos = Math.cos(newAngle);
double newSin = Math.sin(newAngle);
double newTan = newSin/newCos;
double xMax = curCos*radius
double r2 = radius*radius

for(int i=0; i < xMax; i++) {
    for(int j=curTan*x; j < newTan*x; j++) {
        if(i*i + j*j > r2) {
            continue;
        }
        Point point = new Point(x + i, y + j);
    } 
}

这个代码片段只涵盖了NewAngle>CurrentAngle和整个段位于第一象限(x>0和y>0的区域)的情况,但是您可以了解如何迭代点以及如何推广任意角度组合的解。

 类似资料:
  • 我需要画一个有4个扇区的圆。我试着画一个扇区,像这样:

  • 我试图为数据帧(如以下数据帧)获取每个分区每列的平均值: 也就是说,我想得到和的平均值,并将它们聚合成和的唯一组合。因此,生成的DataFrame应该是: 其中,我国城市分区的重复行已聚合为一行,具有平均值。 我研究了等等问题

  • 我确实看到了这个StackOverflow,它似乎是一个类似的问题:在一个圆形扇区中有效地找到点,我用Java实现了它,但如果没有向量,它似乎就不能翻译,我对数学有点困惑,不能让它工作。 我一直试图解决这个问题,我希望任何类型的实现的帮助(不要介意添加触发计算),以及任何理解问题的帮助。谢谢!!

  • 问题内容: 我正在开发python应用程序,我想获取每个打开的窗口。我需要窗口的名称和来过滤列表,以管理一些特定的窗口,移动它们并调整其大小。 我试图自己查看信息,但没有获得正确的代码。我尝试使用此代码,但仅获得每个窗口的标题(很棒),但我也需要。 这里有一个错误: 问题答案: 你混了和。 在你所得到的是通过获得,是一个对象。这就是为什么不接受它。你应该把它传给 如果要使用,则可以直接使用pyth

  • 问题内容: 获取a的每个像素的RGB值的最快方法是什么? 现在,我使用两个循环来获取RGB值,如下面的代码所示,但是获取这些值花费了太长时间,因为嵌套循环为我的图像运行了总共479999次。如果我使用16位图像,那么这个数字会更高! 我需要一种更快的方法来获取像素值。 这是我目前正在尝试使用的代码: 问题答案: 我不知道这是否有帮助,我还没有测试过,但是您可以通过以下方式获取rgb值: 如您所见,

  • 我必须跟踪作为数据源bean在Java web服务器中连接的Oracle会话。 假设,在spring框架中,有一个bean: 并且我必须在池的每个连接上调用PL/SQL。 我该怎么做? 请告诉我在mybatis或JDBC中如何做。 谢谢