Как использовать переменные в C++ в gnuplot-iostream
Я использую gnuplot-iostream для C++, моя проблема, как показано ниже:
gp << "set object 1 rect from 3,1 to 3.2,4 fc lt 1 \n";
В числах выше, можем ли мы использовать некоторые переменные в C++ для их замены? и как это сделать? Добавить один прямоугольник легко, но когда я захочу добавить больше, это будет очень трудно. Я пробую несколько способов, но это не работает. Спасибо вперед!
1 ответ
Никогда не использовал gnuplot-iostream, но, может быть, вам поможет какой-нибудь ванильный C++, iostream - это просто канал для консоли, поэтому вы не можете прерывать буфер, но объединяете информацию, вы можете сделать что-то вроде этого:
gp << "set object " << 1 << " rect from "
<< 3,1 << " to " << 3.2 << "," << 4 << " fc lt 1 \n";
Но я полагаю, вы не хотите этого делать.
Я бы создал структуру и перегрузил бы оператор <<, чтобы вернуть все, что вам нужно.
struct Rect {
float from[2];
float to[2];
}
std::ostream& operator<<(std::ostream& os, const Rect& obj)
{
std::string formated = "from "
+ std::to_string(obj.from[0]) + ","
+ std::to_string(obj.from[1]) + " to "
+ std::to_string(obj.to[0]) + ","
+ std::to_string(obj.to[1]);
os << formated;
return os;
}
Таким образом, вы можете просто определить прямоугольники и передать их в поток
Rect r1 = {{2,41},{63,1.4}};
std::cout << r1; // "from 2,41 to 63,1.4"