問題は例で最もよく説明されます:
http://dl.dropbox.com/u/1013446/歪んだcoordinatespace.exe
右側の小さな正方形の中に小さな赤い正方形をドラッグアンドドロップします。左側の大きな四辺形の赤い四角に対応しています。左側の大きな四辺形の4つの角をドラッグして、正方形内の歪んだバージョンのスペースをどのように占めるかを確認することもできます。
正方形の4つのポイントの絶対座標と、正方形内の任意のポイントの座標が与えられた場合、ポイントの座標を任意の四辺形に再マップするのは簡単です。
私が望んでいるのは、任意の四辺形から始めて、同じことを実行できるようにすることです。四辺形を他の4面の形状に変換しますが、ポイントの相対的な歪んだ位置を維持します。
したがって、2つの不規則な四辺形AとBのそれぞれの4つの絶対座標が与えられた場合、絶対座標が与えられた点Cの座標をどのように変換できますか?
また、これらの変換がどのように呼ばれるかについて、ここで欠落している用語も役立ちます。これは、それらをさらに調査したいためです。
わかりました、私はbtillyのソリューションを実装しようとしています、そしてこれが私がこれまでに持っているものです:
#include<complex>
#define cf complex<float>
cf i=sqrt(complex<float>(-1));
cf GetZ(float x,float y)
{
return cf(x)+(cf(y)*i);
}
cf GetPathIntegral(cf p1,cf p2,cf q1,cf q2, int n)
{
cf sum;
for (int index=0;index<=n;index++)
{
cf s=cf(float(index)/float(n));
cf weight;
if (index==0||index==n)
weight=1;
else if(index%2)
weight=4;
else weight =2;
sum+=(((cf(1)-s)*q1)+(s*q2))*(p2-p1)*weight;
}
return sum/cf((3.0*(n-1.0)));
}
ここから先に進む前に、今のところ正しいことを確認したいと思います...
また、この段落は私を少し混乱させました:
OK、経路積分を行うことができます。その価値は何ですか?領域内のどこかでランダムな点z0=x+iyをとるとします。パスにf(z)が定義されているとします。次に、コーシー積分公式は、f(z)/(2*π*i *(z --z0))の領域の周りの積分(これは、私たちが行う方法を知っている4つの区分的積分の合計です)は本当に境界上の元の関数と一致する素晴らしい関数。
関数は正確に何をしますか?