91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-16
  • 語(yǔ)言: 其他
  • 標(biāo)簽: KD-Tree??

資源簡(jiǎn)介

KD-Tree是一種由二叉搜索樹推廣而來(lái)的用于多維檢索的樹的結(jié)構(gòu)形式(K即為空間的維數(shù))。它與二叉搜索樹不同的是它的每個(gè)結(jié)點(diǎn)表示k維空間的一個(gè)點(diǎn),并且每一層都根據(jù)該層的分辨器(discriminator)對(duì)相應(yīng)對(duì)象做出分枝決策。頂層結(jié)點(diǎn)按由分辨器決定的一個(gè)維度進(jìn)行劃分,第二層則按照該層的分辨器決定的一個(gè)維進(jìn)行劃分···,以此類推在余下各維之間不斷地劃分。直至一個(gè)結(jié)點(diǎn)中的點(diǎn)數(shù)少于給定的最大點(diǎn)數(shù)時(shí),結(jié)束劃分。    KD-Tree的分辨器根據(jù)不同的用途會(huì)有不同的分辨器,最普通的分辨器為:n mod k(樹的根節(jié)點(diǎn)所在層為第0層,根結(jié)點(diǎn)孩子所在層為第1層,以此類推)   即:若它的左子樹非空,則其左子樹上所有結(jié)點(diǎn)的第i維值均小于其根結(jié)點(diǎn)的第i維值;    若它的右子樹非空,則其右子樹上所有結(jié)點(diǎn)的第i維值均大于其根結(jié)點(diǎn)的第i維值;并且它的左右子樹也分別為KD-Tree。

資源截圖

代碼片段和文件信息

/**************************
?*?Includes
?*
?**************************/

#include?“kdtree.h“
#include?
#include?
#include?

float?theta?=?0.0;

/**************************
?*?Function?Declarations
?*
?**************************/

LRESULT?CALLBACK?WndProc?(HWND?hWnd?UINT?message
WPARAM?wParam?LPARAM?lParam);
void?EnableOpenGL?(HWND?hWnd?HDC?*hDC?HGLRC?*hRC);
void?DisableOpenGL?(HWND?hWnd?HDC?hDC?HGLRC?hRC);

double?rand01(void)
{
?double?num?=?double(rand())/double(RAND_MAX);
?return?num;
}

/**************************
?*?WinMain
?*
?**************************/

int?WINAPI?WinMain?(HINSTANCE?hInstance
????????????????????HINSTANCE?hPrevInstance
????????????????????LPSTR?lpCmdLine
????????????????????int?iCmdShow)
{
????WNDCLASS?wc;
????HWND?hWnd;
????HDC?hDC;
????HGLRC?hRC;????????
????MSG?msg;
????BOOL?bQuit?=?FALSE;
????float?theta?=?0.0f;

????/*?register?window?class?*/
????wc.style?=?CS_OWNDC;
????wc.lpfnWndProc?=?WndProc;
????wc.cbClsExtra?=?0;
????wc.cbWndExtra?=?0;
????wc.hInstance?=?hInstance;
????wc.hIcon?=?LoadIcon?(NULL?IDI_APPLICATION);
????wc.hCursor?=?LoadCursor?(NULL?IDC_ARROW);
????wc.hbrBackground?=?(HBRUSH)?GetStockobject?(BLACK_BRUSH);
????wc.lpszMenuName?=?NULL;
????wc.lpszClassName?=?“GLSample“;
????RegisterClass?(&wc);

????/*?create?main?window?*/
????hWnd?=?CreateWindow?(
??????“GLSample“?“Kd-tree?demo“?
??????WS_CAPTION?|?WS_POPUPWINDOW?|?WS_VISIBLE
??????0?0?556?556
??????NULL?NULL?hInstance?NULL);

????/*?enable?OpenGL?for?the?window?*/
????EnableOpenGL?(hWnd?&hDC?&hRC);

vector?P;
for?(int?ctr?=?0;?ctr?P.push_back(Point(rand01()*2-1?rand01()*2-1));

Kdtree?kdtree(P);

????/*?program?main?loop?*/
????while?(!bQuit)
????{
????????/*?check?for?messages?*/
????????if?(PeekMessage?(&msg?NULL?0?0?PM_REMOVE))
????????{
????????????/*?handle?or?dispatch?messages?*/
????????????if?(msg.message?==?WM_QUIT)
????????????{
????????????????bQuit?=?TRUE;
????????????}
????????????else
????????????{
????????????????TranslateMessage?(&msg);
????????????????DispatchMessage?(&msg);
????????????}
????????}
????????else
????????{
????????????/*?OpenGL?animation?code?goes?here?*/

????????????glClearColor?(0.0f?0.0f?0.0f?0.0f);
????????????glClear?(GL_COLOR_BUFFER_BIT);
????????????
????????????theta+=.05;
????????????float?circlex?=?cos(theta)/2.0?circley?=?sin(theta)/2.0;

????????????vector?selected?=?
????????????????kdtree.searchtree(circlex-0.5?circley-0.5?circlex+0.5?circley+0.5);

????????????vector::iterator?i?=?selected.begin();

????????????glBegin?(GL_POINTS);
????????????while?(i?!=?selected.end())
????????????{
????????????????Point?&p?=?*i++;??????
????????????????glVertex3f(p.x?p.y?0);
????????????}
????????????glEnd?();

????????????SwapBuffers?(hDC);

????????????Sleep?(1);
????????}
????}

????/*?shutd

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件????????589??2005-08-30?03:20??@PSC_ReadMe_9767_3.txt

?????文件???????7911??2005-08-30?01:21??kdtree.h

?????文件???????4825??2005-08-29?12:40??oglkd.cpp

-----------?---------??----------?-----??----

????????????????13325????????????????????3


評(píng)論

共有 條評(píng)論