小编Rea*_*tus的帖子

如何在没有"&"或"*"的情况下为被调用的方法提供正确的参数?

我是新来的用c ++编写代码的新手,目前遇到以下问题:

我使用库wykobi来处理几何并解决了我之前的许多问题,但现在我想用它创建一个三角形,并且无法弄清楚如何正确调用所需的方法.

std::string x_str(argv[2]);
std::string y_str(argv[3]);
double x = atof(x_str.c_str());
double y = atof(y_str.c_str());
Run Code Online (Sandbox Code Playgroud)

[...]

double x2;
x2 = double(orientation.direction.x)+angleRightx;
double y2;
y2 = double(orientation.direction.y)+angleRighty;
double x3;
x3 = double(orientation.direction.x)+angleLeftx;
double y3;
y3 = double(orientation.direction.y)+angleLefty;

wykobi::triangle<wykobi::Float,2> clip_boundry = wykobi::make_triangle<wykobi::Float,2>(&x,&y, &x2,&y2, &x3,&y3);
wykobi::polygon<wykobi::Float,2> clipped_polygon;
wykobi::algorithm::sutherland_hodgman_polygon_clipper<wykobi::point2d<wykobi::Float> >(clip_boundry,wykPG,clipped_polygon);
Run Code Online (Sandbox Code Playgroud)

在创建一个圆圈之前我尝试了类似的东西,它完美地运行:

wykobi::circle<wykobi::Float> circle;
circle.x = x;
circle.y = y;
circle.radius = dist;
wykobi::polygon<wykobi::Float,2> clip_boundry = wykobi::make_polygon<wykobi::Float>(circle,100);
wykobi::polygon<wykobi::Float,2> clipped_polygon;
wykobi::algorithm::sutherland_hodgman_polygon_clipper<wykobi::point2d<wykobi::Float> >(clip_boundry,wykPG,clipped_polygon);
Run Code Online (Sandbox Code Playgroud)

现在编译的问题是:

错误:没有匹配函数来调用'make_triangle(double*,double*,double*,double*,double*,double*)'

当我删除&符号时:

wykobi::triangle<wykobi::Float,2> clip_boundry = wykobi::make_triangle<wykobi::Float,2>(x,y, x2,y2, x3,y3);
Run Code Online (Sandbox Code Playgroud)

通讯错误是:

错误:没有匹配函数来调用'make_triangle(double&,double&,double&,double&,double&,double&)'

最后我调用的方法如下:

template<typename T> …
Run Code Online (Sandbox Code Playgroud)

c++

12
推荐指数
3
解决办法
177
查看次数

如何将包含双精度的std :: string转换为双精度矢量?

我有两种输入情况,我想使用相同的方法.第一种情况是给定的参数是一个std :: string,包含三个数字,我需要转换为int:

std::string pointLine = "1 1 1";
Run Code Online (Sandbox Code Playgroud)

第二种情况是给定参数是一个std :: string,其中包含三个"not yet double",我需要将其转换为双精度数:

std::string pointLine = "1.23 23.456 3.4567"
Run Code Online (Sandbox Code Playgroud)

我写了以下方法:

std::vector<double> getVertexIndices(std::string pointLine) {


vector<int> vertVec;

vertVec.push_back((int) pointLine.at(0));
vertVec.push_back((int) pointLine.at(2));
vertVec.push_back((int) pointLine.at(4));

return vertVec;
Run Code Online (Sandbox Code Playgroud)

}

这适用于第一种情况,但不适用于应该转换为双精度的行.

于是,我的解决方案在C型双分裂.我知道我的分隔符是"".

这就是我现在想出来的,但是在第一次调用以下方法后程序崩溃了:

std::vector<double> getVertexIndices(std::string pointLine) { 

vector<double> vertVec;
char * result = std::strtok(const_cast<char*>(pointLine.c_str()), " "); 

while(result != NULL ) {
    double vert = atof (result);
    vertVec.push_back(vert);
    char * result = std::strtok(NULL, " ");
}
return vertVec;
Run Code Online (Sandbox Code Playgroud)

}

c++ c++11

6
推荐指数
2
解决办法
2794
查看次数

JComboBox 下拉列表不显示

这可能是JComboBox 弹出菜单没有出现的副本,但因为它是一个相当老的问题并且已经有一段时间没有激活了,而且所有的答案都不是解决方案,这对我的问题有帮助。因此我决定创建一个新问题。

问题如下:我收到了一个以前的同事的申请,它不再在我的公司工作了。现在我尝试将 JComboBox 添加到 JPanel。JCombobox 按预期显示,但其行为方式与 Seth 在他的问题中描述的方式相同:

1)第一次点击展开按钮什么也不做。第二次单击突出显示框的内容,但仍然没有出现弹出窗口。

2) 一旦我点击了按钮并赋予它焦点,向上/向下击键就会正确地循环显示条目。

我已将代码分解为我认为所需编程最少的代码,以便出现问题。(正如提到的问题中的一个评论提到提供 SSCCE,这从未发生过)。

现在这是我可以提供的代码:

public static class CreateProjectDialog extends JFrame {

private Dimension size = Toolkit.getDefaultToolkit().getScreenSize();

public CreateProjectDialog() {

    setDefaultCloseOperation(EXIT_ON_CLOSE);
    int SZ_INCR = 1;

    // Passe Fontgröße an Resolution an:
    if (size.width > 1920) {
        SZ_INCR = 2;
    }

    // Initialize Glass Layer
    final JPanel panelGlass = (JPanel) getGlassPane();
    panelGlass.setLayout(null);
    panelGlass.setVisible(true);

    private static JPanel licBorrowPanel = null;

    licBorrowPanel = new JPanel();
    licBorrowPanel.setBounds(0, 20, 1000, 500);
    licBorrowPanel.setVisible(false);
    licBorrowPanel.setBackground(Color.WHITE); …
Run Code Online (Sandbox Code Playgroud)

java swingx jcombobox

2
推荐指数
1
解决办法
1296
查看次数

标签 统计

c++ ×2

c++11 ×1

java ×1

jcombobox ×1

swingx ×1