線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:911
推到 Plurk!
推到 Facebook!

請教設計方向.......上萬個點座標處理

尚未結案
yachu721
初階會員


發表:51
回覆:98
積分:44
註冊:2003-07-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-29 18:55:12 IP:203.67.xxx.xxx 未訂閱
在一個文字檔案中 內容包含了上萬個點座標 類似以下 GOTO XX 0.1075 YY 0.0113 ZZ 0.9419 FEED100 XX 0.1213 YY 0.0109 ZZ 0.9517 RAD1 R10 XX0.13 YY 0. ZZ0.9517 主要目的是將其座標在OPENGL中描繪出來 我之前的方法 是將每行中的字串XYZ點取出 XX後的數字代表X座標 YY後的數字代表Y座標 ZZ後的數字代表Z座標 丟入3個陣列中 描點時在使用for迴圈丟入OPENGL 因為沒有辦法確定有多少點 故要將陣列的大小設的很大 也導致程式速度變慢 問題1.如何從字串中快速的取出各座標點到陣列 問題2.座標點中RAD1 代表順時中劃圓弧R10代表大小 XX YY ZZ代表圓弧的下一點座標,所以劃圓弧需更多點.是否將其座標丟入陣列中好呢?還是到OPENGL另外處理好. 還是有更好的設計方向呢
markov
中階會員


發表:55
回覆:135
積分:53
註冊:2003-12-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-29 20:57:57 IP:220.139.xxx.xxx 未訂閱
你為何不試著將座標點裝進vector example: 宣告  
#include 
using namespace std;
vector PointInfo;
 
如此一來就不用事先先知道要多少點了 而且程式也會快非常多喔
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-30 21:34:25 IP:221.169.xxx.xxx 未訂閱
vector不適合這種用途 他原本只是先配置某塊大小的記憶體 當不敷使用時,再配置更大的記憶體空間,然後刪除舊的空間 當數據太多時,時間都浪費在複製、搬移資料上面了 改用deque會比較好
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-31 05:09:34 IP:211.76.xxx.xxx 未訂閱
引言: vector不適合這種用途 他原本只是先配置某塊大小的記憶體 當不敷使用時,再配置更大的記憶體空間,然後刪除舊的空間 當數據太多時,時間都浪費在複製、搬移資料上面了 改用deque會比較好
利用resize和reserve可以解決這個問題。 這個case用vector好像比較方便
yachu721
初階會員


發表:51
回覆:98
積分:44
註冊:2003-07-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-31 23:12:59 IP:203.67.xxx.xxx 未訂閱
謝謝各大大的解答 可能我還是要試試看才知道結果 至少有兩個方向囉 cccc... 不然用array好像有點不適合...
系統時間:2024-05-19 19:47:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!