所以我正在创建一个图形计算器.我有一个输入字符串s.从字符串中,我可以使用SFML对其进行图形化.我从MIN x坐标开始到MAX x坐标,从EvaluateString()方法获取相应的y,并将所有坐标转到VertexArray v.我已经编写了我的方法和图形方法,一切运行良好.
但是,我有一个小问题.我想在屏幕上输入我的字符串,例如"sin(cos(tan(x)))".我很难找到办法.我有点想通知它与事件TextEntered有关,但我仍然找不到任何完整的东西.
请建议我一个方法.非常感谢!
class Calculator{
public:
void main();
private:
WindowSize DefaultWindow;
sf::RenderWindow window;
Cartesian vertexX[2],vertexY[2];
sf::Vertex axis[4];
const double MAX = 10;
const double MIN = -10;
const double INCREMENT = 0.001;
};
int main(){
DefaultWindow.Max = Cartesian(10,10);
DefaultWindow.Min = Cartesian(-10,-10);
DefaultWindow.plane.width=1500;
DefaultWindow.plane.height=1500;
// Set up x and y-axis
vertexX[0] = Cartesian(-100,0);
vertexX[1] = Cartesian(100, 0);
vertexY[0] = Cartesian(0,-100);
vertexY[1] = Cartesian(0,100);
axis[0] = sf::Vertex(convertCartesiantoWindow(vertexX[0],DefaultWindow));
axis[1] = sf::Vertex(convertCartesiantoWindow(vertexX[1],DefaultWindow));
axis[2] = sf::Vertex(convertCartesiantoWindow(vertexY[0],DefaultWindow));
axis[3] = sf::Vertex(convertCartesiantoWindow(vertexY[1],DefaultWindow));
// Set up …Run Code Online (Sandbox Code Playgroud) 我正在学习链表.我创建了一个模板实现,包括构造函数,插入器,析构函数,复制构造函数和重载赋值运算符.问题是我的测试程序在重载赋值运算符后没有输出任何内容.
对于我的赋值运算符,我使用Clear()函数在复制之前完全清除列表.我把它放在析构函数中并检查它是否正常工作.我还检查了我的复制构造函数,它也运行良好.
文件node.h:定义节点构建块
#include <iostream>
using namespace std;
template <typename T>
struct Node{
T _item;
Node<T>* _next;
Node() {
_item = T();
_next = NULL;
}
Node(T item){
_item = item;
_next = NULL;
}
// Print the value of a node
friend std::ostream& operator <<(std::ostream& outs, const Node<T> &printMe){
outs << "[" << printMe._item << "]";
return outs;
}
};
Run Code Online (Sandbox Code Playgroud)
文件list.h:定义链接列表模板
#include "node.h"
template <class T>
class List {
public:
// …Run Code Online (Sandbox Code Playgroud)