小编For*_*eza的帖子

Ray和Triangle Edge如何相交?

我面临着与三角形边缘相交的问题.实际上,我正在尝试使用鼠标选择/交叉网格的三角形,顶点,边缘.所以我从鼠标当前位置制作了光线,然后我将它与网格元素(如三角形/多边形,顶点,边缘等)相交以使用它.基本上,3D建模的东西.与三角形相交很简单有趣.顶点部分很棘手.

但现在,我不知道如何用三角形边相交/拾取.我的意思是我在与鼠标射线相交时如何对待它们?首先,我认为它们可以像3D线一样对待.但最终未能做到Ray和the Line相交.在互联网上搜索但没有找到任何有用的信息.虽然我发现一些开源项目正在使用OpenGL内置的拾取功能来选择/与Edge交叉.但就我而言,我无法使用它.:(

我当前的边缘选取代码结构如下所示:

void pickEdge(Ray ray, Scene scene)
{
    for each object in scene
    {
        mesh = getMesh(object)
        for each triangle in mesh
        {
            for each edge in triangle
            {
                v1 = getV1(edge)
                v2 = getV2(edge)

                // Do intersect with 'ray' and 'v1', 'v2'. But how?
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我被困在这里,真的需要一些帮助.非常感谢任何想法,算法或小帮助.

algorithm math 3d intersection ray-picking

7
推荐指数
1
解决办法
619
查看次数

将指针分配给 nasm 汇编程序中的指针

我想知道如何将指针变量地址分配给 NASM 汇编程序中的另一个指针变量。我的意思是取地址。

在 C/C++ 语言中,它应该是这样的:

char *p1 = "Hello, World?";

// So here, I can do it easily
char *p2 = p1;
Run Code Online (Sandbox Code Playgroud)

在 NASM 中,我在数据部分有两个变量,如下所示:

String_01 db 'Hello, World', 0
String_02 dd 0
Run Code Online (Sandbox Code Playgroud)

那么如何在 NASM 中完成 C/C++ 赋值呢?

实际上我是 NASM 的初学者,所以我需要一些详细信息。请帮忙。

assembly pointers nasm

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

如果我们不使用DeleteObject会发生什么

我们必须使用该DeleteObject函数来删除GDI对象.

但是如果我们不删除通过该CreatePen功能创建的GDI笔会发生什么?

c++ winapi gdi

-1
推荐指数
1
解决办法
120
查看次数

为什么以下C++程序打印'0'而不是'6'?

我有两个叫做FWindowFFramwWindow的课程.该FFramwWindow类继承的FWindow.该FWindow类包含两个构造方法.

第一个是默认构造函数,第二个包含一个int类型的参数.

我从FFramwWindow类的默认构造函数中调用第二个构造函数来初始化名为'value' 的FWindow类的成员变量.

但我不知道它为什么不起作用 -

class FWindow {
public:
    int value;
    FWindow() 
    {
        this->value = 0;
    }
    FWindow(int val) 
    {
        this->value = val;
    }
};

class FFramwWindow : public FWindow
{
public:
    FFramwWindow()
    {
        FWindow::FWindow(6);

        printf("value %d\n", this->value);
    }
};

int main(int argc, _TCHAR* argv[])
{
    FFramwWindow obj;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码打印 - value 0

在哪里我预计会打印 - value 6

似乎它只调用默认的基类构造函数,而不是我明确调用的第二个.

注意:我正在使用Visual …

c++ oop constructor

-1
推荐指数
1
解决办法
95
查看次数

标签 统计

c++ ×2

3d ×1

algorithm ×1

assembly ×1

constructor ×1

gdi ×1

intersection ×1

math ×1

nasm ×1

oop ×1

pointers ×1

ray-picking ×1

winapi ×1