Вам нужно иметь> 50 панорам с расстоянием < 5 м между двумя подключенными панорамами. Через несколько дней (недель?) Google преобразует их в синюю строку на отдельном этапе обработки.
Смотря на страницу Wikipedia, я вижу, что уравнение прямой линии, соответствующей данному данному r, θ пара,
r = x cosθ + y sinθ
Таким образом, если я понимаю, учитывая двух пар r1, θ1 и r2, θ2, для нахождения пересечения необходимо решить для неизвестных x, y следующее линейное 2x2 система:
x cos θ1 + y sin θ1 = r1 x cos θ2 + y sin θ2 = r2
это - AX = b, где
A = [cos θ1 sin θ1] b = |r1| X = |x| [cos θ2 sin θ2] |r2| |y|
Никогда не встречался с матричной математикой прежде, поэтому взял немного исследования и экспериментирования для разработки процедуры ответа Fredrico. Спасибо, должен был узнать о матрицах так или иначе. ^^
функционируйте для нахождения, где две параметризованных строки пересекаются:
//Find point (x,y) where two parameterized lines intersect :p Returns 0 if lines are parallel
int parametricIntersect(float r1, float t1, float r2, float t2, int *x, int *y) {
float ct1=cosf(t1); //matrix element a
float st1=sinf(t1); //b
float ct2=cosf(t2); //c
float st2=sinf(t2); //d
float d=ct1*st2-st1*ct2; //determinative (rearranged matrix for inverse)
if(d!=0.0f) {
*x=(int)((st2*r1-st1*r2)/d);
*y=(int)((-ct2*r1+ct1*r2)/d);
return(1);
} else { //lines are parallel and will NEVER intersect!
return(0);
}
}