#include <iostream>
#include <fstream>
#include <string>
#include <filesystem>
#include "mytools2.hpp"
#include <vector>
using namespace std;
using TMU::R2; // 名前呼び捨てで使えるようになる．
int main(){
    string dir = "res";
    vector<R2> vp;

    vp.push_back(R2(-0.1, -0.5));
    vp.push_back(R2(0.2, -0.5));
    vp.push_back(R2(0.7, 1));
    vp.push_back(R2(0.1, 1));
    vp.push_back(R2(-0.1, -1));
    vp.push_back(R2(-0.1, 1));

    filesystem::create_directories(dir);
    int k = 0;
    double lambda = 0;
    double V = 0.02;

    TMU::SVGGraph o;
    o.setPointSize(0.01);
    o.drawVAxis("Vertical axis");
    o.drawHAxis("Horizontal axis");
    int i = 0;
    while(true){
        if(k == vp.size()-1){
            break;
        }

        R2 pk = vp[k];
        R2 pkp = vp[k+1];
        double Lk = (pk - pkp).len();
        double A = lambda/Lk;
        R2 q = (1-A)*pk + A*pkp;

        lambda += V;
        if(lambda > Lk){
            lambda = lambda - Lk ;
            k = k + 1;
        }

    	o.circle(q);
        string fname= dir + "/graph_" + to_string(i) + ".svg";
	    ofstream of(fname);
    	of << o.serialize();
        i++;
    }

	return 0;
}
