return ret;
}
-void linear_kernel_search (double x0, double y0, double z0, double p1, double p2, double p3, std::vector< RVec > x, double epsi) {
+void linear_kernel_search (double &x0, double &y0, double &z0, double &p1, double &p2, double &p3, std::vector< RVec > x, double epsi) {
double F = 1, FX = 0, FX0 = 0, FY0 = 0, FZ0 = 0, FP1 = 0, FP2 = 0, FP3 = 0;
double L1, L2, L3, L4, L5, L6;
while (F - FX >= epsi) {
mid[2] /= sel.size();
rvec_sub(temp.back(), temp.front(), arrow);
- linear_kernel_search(mid[0], mid[1], mid[2], arrow[0], arrow[1], arrow[2], temp, epsi); //изменить формат функции для изменения значений переменных
+ double t1, t2, t3, t4, t5, t6;
+ t1 = mid[0];
+ t2 = mid[1];
+ t3 = mid[2];
+ t4 = arrow[0];
+ t5 = arrow[1];
+ t6 = arrow[2];
+
+ //linear_kernel_search(mid[0], mid[1], mid[2], arrow[0], arrow[1], arrow[2], temp, epsi); //изменить формат функции для изменения значений переменных
+ linear_kernel_search(t1, t2, t3, t4, t5, t6, temp, epsi);
+
+ mid[0] = t1;
+ mid[1] = t2;
+ mid[2] = t3;
+ arrow[0] = t4;
+ arrow[1] = t5;
+ arrow[2] = t6;
kernel.resize(kernel.size() + 1);
kernel.back().x = mid;
kernel.back().krnl.push_back(kernel_pro(mid[0], mid[1], mid[2], arrow[0], arrow[1], arrow[2], temp[i]));
}
- circles.resize(circles.size() + 1);
+ /*circles.resize(circles.size() + 1);
int prev_sign = -9999, change = 0;
RVec a, b, c;
circles.back().back().push_back(i);
change = 1;
}
- }
+ }*/
frames++;
}
void
Spirals::finishAnalysis(int /*nframes*/)
{
-
+ FILE *file;
+ file = std::fopen("linear kernel.txt", "w+");
+ for (int i = 0; i < kernel.size(); i++) {
+ for (int j = 0; j < kernel[i].krnl.size(); j++) {
+ std::fprintf(file, "%3.2f %3.2f %3.2f\n", kernel[i].krnl[j][0], kernel[i].krnl[j][1], kernel[i].krnl[j][2]);
+ }
+ std::fprintf(file, "\n");
+ }
+ std::fclose(file);