計算g(phi,s)
するには、少なくとも最も基本的な合計を試すことができます。
まず、いくつかの小さなステップを使用してf(x,y) * delta(x*sin(phi) - y*cos(phi) - s) * dx
、特定の画像y
とすべての画像を合計します。のループです。次に、いくつかの小さなステップを使用して、すべての画像に対して上記を繰り返します。これは の別のループです。ああ、 を掛けることを忘れないでください。したがって、 forとand 内に合計2 つの入れ子になったループがあります。たとえば、次のようになります。x
dx
x
y
dy
y
dy
y
x
f(x,y) * delta(x*sin(phi) - y*cos(phi) - s) * dx * dy
#include <math.h>
#include <assert.h>
double g(double phi, double s, double xmin, double xmax, double dx, double ymin, double ymax, double dy)
{
double x, y, sum;
assert(xmin <= xmax && dx > 0);
assert(ymin <= ymax && dy > 0);
sum = 0;
for (y = ymin; y <= ymax; y += dy)
for (x = xmin; x <= xmax; x += dx)
sum += f(x,y) * delta(x*sin(phi) - y*cos(phi) - s) * dx * dy;
return sum;
}
f()
画像データを返すように定義し、delta()
適切なdx
and dy
(大きすぎず、小さすぎず) を選択するだけです。これにより、最初の結果が得られるはずです。