所以我試圖以4個字節爲增量讀取STL文件中的數據。每個4字節的數字對應於x,y或z座標的值。爲了我的目的,這個數字不需要非常精確。將該值存儲爲雙精度值可以。但是,要讀取4個字節的數字,我必須先將它存儲在char [4]中。從使用iEEE的字符數組恢復雙值754
例如,如果我嘗試在數字改爲 「2」 讓我的焦炭[4] 樣子0 0 0 64
同樣,數量0.314286看起來像15 -22 -96 62
看完此鏈接http://www.h-schmidt.net/FloatConverter/IEEE754.html 我確定這些數字對應於IEEE754的二進制表示。在這種格式中,幅度仍然是我想要的數字(例如我想要的數字是2或0.314286),但我無法讓我的程序正確顯示這些值。
例如:0 0 0 64 = 00000000 00000000 00000000 01000000 = 2在IEEE754中 注意:這與上述鏈接中的網站轉換器略有不同,因爲我認爲字節序可能不同,但值仍然正確。
如何將4字節的char [4]轉換爲實際的double值?也許這個問題比我想象的要容易得多,但我似乎無法鑄造價值。
我在本網站讀入IEEE 754 http://www.cprogramming.com/tutorial/floating_point/understanding_floating_point_representation.html但我不確定我應該如何處理這個問題。
謝謝你閱讀這個問題,我是這個社區的新手,但我很欣賞我能得到的任何方向!
以下是我如何從名稱存儲在fname中的文件讀取數據的代碼示例。
ifstream myFile(fname.c_str(), ios::in | ios::binary);
char triData[4] = "";
myFile.read(triData, 4);
至於輸入文件,它是一個二進制STL文件。因此,查看文件對我們來說並不重要。這是一個球體形狀文件的片段。
Created by stlwrite.m 08-Oct-2014 14:15:16 nS·¾!©’½Rn¿ê ¾ éçr¿ê ¾œ•Ÿ½_q¿½ä¨¾ _q¿ nS·¾!©’=Rn¿ê ¾ éçr¿½ä¨¾ _q¿ê ¾œ•Ÿ=_q¿ £¥`¾£¥`¾^s¿ê ¾ê ¾Ly¿ê ¾Ùd「¾_q¿Ùd「¾ê ¾_q¿ ¹œe¾™½¿x¿ê ¾ê ¾Ly¿Ùd「¾ê ¾_q¿ê ¾ }0|¿ ©œe¾™½¿x¿ê ¾ }0|¿Ùd「¾ê ¾_q¿ê ¾œ•Ÿ½_q¿ ¢œe¾;™½¿x¿ê ¾ }0|¿ê ¾œ•Ÿ½_q¿ê ¾ éçr¿ ¢œe¾;™=¿x¿ê ¾ éçr¿ê ¾œ•Ÿ=_q¿ê ¾ }0|¿ ©œe¾™=¿x¿ê ¾ }0|¿ê ¾œ•Ÿ=_q¿Ùd「¾ê >_q¿ ¹œe¾™=¿x¿ê ¾ }0|¿Ùd「¾ê >_q¿ê ¾ê >Ly¿ £¥`¾£¥`>^s¿ê ¾ê >Ly¿Ùd「¾ê >_q¿ê ¾Ùd「>_q¿ !©’½nS·¾Rn¿ ê ¾éçr¿ ½ä¨¾_q¿œ•Ÿ½ê ¾_q¿ ;™½¢œe¾¿x¿ ê ¾éçr¿œ•Ÿ½ê ¾_q¿ ê ¾}0|¿ ™½©œe¾¿x¿ ê ¾}0|¿œ•Ÿ½ê ¾_q¿ê ¾Ùd「¾_q¿ ™½¹œe¾¿x¿ ê ¾}0|¿ê ¾Ùd「¾_q¿ê ¾ê ¾Ly¿ 4œ½4œ½ž~¿ê ¾ê ¾Ly¿ê ¾ }0|¿ ê ¾}0|¿ fœ½fœ½ž~¿ ê ¾}0|¿ê ¾ }0|¿ ¯H¿ fœ½4œ=ž~¿ê ¾ }0|¿ê ¾ê >Ly¿ ¯H¿ 4œ½fœ=ž~¿ ¯H¿ê ¾ê >Ly¿ ê >}0|¿ ™½¹œe>¿x¿ê ¾ê >Ly¿ê ¾Ùd「>_q¿ ê >}0|¿ ™½©œe>¿x¿ ê >}0|¿ê ¾Ùd「>_q¿œ•Ÿ½ê >_q¿ ;™½¢œe>¿x¿ ê >}0|¿œ•Ÿ½ê >_q¿ ê >éçr¿ !©’½nS·>Rn¿ ê >éçr¿œ•Ÿ½ê >_q¿ ½ä¨>_q¿ !©’=nS·¾Rn¿ ê ¾éçr¿œ•Ÿ=ê ¾_q¿ ½ä¨¾_q¿ ;™=¢œe¾¿x¿ ê ¾éçr¿ ê ¾}0|¿œ•Ÿ=ê ¾_q¿ ™=¯œe¾¿x¿œ•Ÿ=ê ¾_q¿ ê ¾}0|¿ê >ê ¾Ly¿ +™=¸œe¾¿x¿œ•Ÿ=ê ¾_q¿ê >ê ¾Ly¿ê >Ùd「¾_q¿ 4œ=fœ½ž~¿ ê ¾}0|¿ ¯H¿ê >ê ¾Ly¿ fœ=4œ½ž~¿ê >ê ¾Ly¿ ¯H¿ê > }0|¿ fœ=fœ=ž~¿ ¯H¿ ê >}0|¿ê > }0|¿ 4œ=4œ=ž~¿ê > }0|¿ ê >}0|¿ê >ê >Ly¿ ™=£œe>¿x¿ ê >}0|¿ ê >éçr¿ê >ê >Ly¿ ;™=½œe>¿x¿ê >ê >Ly¿ ê >éçr¿œ•Ÿ=ê >_q¿ +™=¸œe>¿x¿ê >ê >Ly¿œ•Ÿ=ê >_q¿ê >Ùd「>_q¿ !©’=nS·>Rn¿ ê >éçr¿ ½ä¨>_q¿œ•Ÿ=ê >_q¿ £¥`>£¥`¾^s¿ê >ê ¾Ly¿Ùd「>ê ¾_q¿ê >Ùd「¾_q¿ ¹œe>™½¿x¿ê >ê ¾Ly¿ê > }0|¿Ùd「>ê ¾_q¿ £œe>,™½¿x¿Ùd「>ê ¾_q¿ê > }0|¿ê > éçr¿ Ïœe>:™½¿x¿Ùd「>ê ¾_q¿ê > éçr¿ê >œ•Ÿ½_q¿ £œe>™=¿x¿ê > }0|¿ê >ê >Ly¿ê > éçr¿ ¹œe>3™=¿x¿ê > éçr¿ê >ê >Ly¿Ùd「>ê >_q¿ Ïœe>:™=¿x¿ê > éçr¿Ùd「>ê >_q¿ê >œ•Ÿ=_q¿ £¥`>£¥`>^s¿ê >ê >Ly¿ê >Ùd「>_q¿Ùd「>ê >_q¿ nS·>!©’½Rn¿ê > éçr¿½ä¨> _q¿ê >œ•Ÿ½_q¿ nS·>!©’=Rn¿ê > éçr¿ê >œ•Ÿ=_q¿½ä¨> _q¿ ëS ¿OS·¾m¨I¿_ñ¾ê ¾FER¿_ñ¾É¾’$I¿¿ê ¾’$I¿ ¾ð¿¸œe¾KzR¿_ñ¾ê ¾FER¿¿ê ¾’$I¿_ñ¾ê ¾ö=]¿ ¿ð¿´œe¾JzR¿_ñ¾ê ¾ö=]¿¿ê ¾’$I¿'E¿ê ¾’$I¿ ¨ ¿7œ½JXW¿_ñ¾ê ¾ö=]¿'E¿ê ¾’$I¿_ñ¾ 0æ`¿ ¤ ¿aœ½LXW¿_ñ¾ 0æ`¿'E¿ê ¾’$I¿_¿ ’$I¿ ¤ ¿8œ=LXW¿_ñ¾ 0æ`¿_¿ ’$I¿_ñ¾ê >ö=]¿ ¨ ¿_œ=JXW¿_ñ¾ê >ö=]¿_¿ ’$I¿'E¿ê >’$I¿ ¿ð¿·œe>JzR¿_ñ¾ê >ö=]¿'E¿ê >’$I¿_ñ¾ê >FER¿ ¾ð¿°œe>KzR¿_ñ¾ê >FER¿'E¿ê >’$I¿¿ê >’$I¿ ëS ¿OS·>m¨I¿_ñ¾ê >FER¿¿ê >’$I¿_ñ¾É>’$I¿ OS·¾ëS ¿m¨I¿ê ¾_ñ¾FER¿ê ¾¿’$I¿É¾_ñ¾’$I¿ ¢Äþ¥ÄþIXW¿ê ¾_ñ¾FER¿É¾_ñ¾’$I¿ê ¾ê ¾kŽd¿ ¥Äþ¥ÄþJXW¿ê ¾ê ¾kŽd¿É¾_ñ¾’$I¿_ñ¾É¾’$I¿ §Äþ¢ÄþKXW¿ê ¾ê ¾kŽd¿_ñ¾É¾’$I¿_ñ¾ê ¾FER¿ Ο;ƿv¾Â/b¿_ñ¾ê ¾FER¿_ñ¾ê ¾ö=]¿ê ¾ê ¾kŽd¿ ğ;±¿v¾Ã/b¿ê ¾ê ¾kŽd¿_ñ¾ê ¾ö=]¿ê ¾ê ¾‡o¿ R%Ó¾£ê¨½vBh¿ê ¾œ•Ÿ½_q¿ê ¾ê ¾‡o¿½ä¨¾ _q¿ )%Ó¾˜ê¨½Bh¿½ä¨¾ _q¿ê ¾ê ¾‡o¿_ñ¾ê ¾ö=]¿ 3%Ó¾s꨽€Bh¿½ä¨¾ _q¿_ñ¾ê ¾ö=]¿_ñ¾ 0æ`¿ 1%Ó¾‰ê¨=~Bh¿½ä¨¾ _q¿_ñ¾ 0æ`¿ê ¾œ•Ÿ=_q¿ 1%Ó¾rê¨=Bh¿ê ¾œ•Ÿ=_q¿_ñ¾ 0æ`¿_ñ¾ê >ö=]¿ *%Ó¾«ê¨=Bh¿ê ¾œ•Ÿ=_q¿_ñ¾ê >ö=]¿ê ¾ê >‡o¿ ğ;ȿv>Ã/b¿_ñ¾ê >ö=]¿_ñ¾ê >FER¿ê ¾ê >‡o¿ ̟;°¿v>Â/b¿ê ¾ê >‡o¿_ñ¾ê >FER¿ê ¾ê >kŽd¿ ¥Äþ¢ÄÃ>IXW¿_ñ¾ê >FER¿_ñ¾É>’$I¿ê ¾ê >kŽd¿ ¥Äþ¥ÄÃ>JXW¿ê ¾ê >kŽd¿_ñ¾É>’$I¿É¾_ñ>’$I¿ ¢Äþ§ÄÃ>KXW¿ê ¾ê >kŽd¿É¾_ñ>’$I¿ê ¾_ñ>FER¿ OS·¾ëS ?m¨I¿ê ¾_ñ>FER¿É¾_ñ>’$I¿ê ¾?’$I¿ ¸œe¾¾ð¿KzR¿ê ¾_ñ¾FER¿ê ¾_ñ¾ö=]¿ê ¾¿’$I¿ ´œe¾¿ð¿JzR¿ê ¾¿’$I¿ê ¾_ñ¾ö=]¿ê ¾'E¿’$I¿ Æ¿v¾ÎŸÍ¾Â/b¿ê ¾_ñ¾FER¿ê ¾ê ¾kŽd¿ê ¾_ñ¾ö=]¿ ²¿v¾ÄŸÍ¾Ã/b¿ê ¾_ñ¾ö=]¿ê ¾ê ¾kŽd¿ê ¾ê ¾‡o¿ 7H‚¾7H‚¾–Ùn¿ê ¾Ùd「¾_q¿ê ¾ê ¾‡o¿Ùd「¾ê ¾_q¿ H‚¾$H‚¾›Ùn¿Ùd「¾ê ¾_q¿ê ¾ê ¾‡o¿ê ¾ê ¾kŽd¿ 7H‚¾H‚¾˜Ùn¿Ùd「¾ê ¾_q¿ê ¾ê ¾kŽd¿ê ¾ê ¾‡o¿ ƒ3†¾`ï²½÷v¿Ùd「¾ê ¾_q¿ê ¾ê ¾‡o¿ê ¾œ•Ÿ½_q¿ ƒ3†¾`ï²=÷v¿ê ¾œ•Ÿ=_q¿ê ¾ê >‡o¿Ùd「¾ê >_q¿ 7H‚¾7H‚>–Ùn¿Ùd「¾ê >_q¿ê ¾ê >‡o¿ê ¾Ùd「>_q¿ $H‚¾ H‚>›Ùn¿ê ¾Ùd「>_q¿ê ¾ê >‡o¿ê ¾ê >kŽd¿ H‚¾7H‚>˜Ùn¿ê ¾Ùd「>_q¿ê ¾ê >kŽd¿ê ¾ê >‡o¿ °¿v¾ÎŸÍ>Â/b¿ê ¾ê >kŽd¿ê ¾_ñ>FER¿ê ¾ê >‡o¿ Æ¿v¾ÄŸÍ>Ã/b¿ê ¾ê >‡o¿ê ¾_ñ>FER¿ê ¾_ñ>ö=]¿ ¸œe¾¾ð?KzR¿ê ¾_ñ>FER¿ê ¾?’$I¿ê ¾_ñ>ö=]¿ ´œe¾¿ð?JzR¿ê ¾_ñ>ö=]¿ê ¾?’$I¿ê ¾'E?’$I¿ 7œ½¨ ¿JXW¿ê ¾_ñ¾ö=]¿ _ñ¾0æ`¿ê ¾'E¿’$I¿ ^œ½¤ ¿LXW¿ê ¾'E¿’$I¿ _ñ¾0æ`¿ _¿’$I¿ ‰ê¨½1%Ó¾~Bh¿ ½ä¨¾_q¿ _ñ¾0æ`¿œ•Ÿ½ê ¾_q¿ r꨽1%Ó¾Bh¿œ•Ÿ½ê ¾_q¿ _ñ¾0æ`¿ê ¾_ñ¾ö=]¿ «ê¨½*%Ó¾Bh¿œ•Ÿ½ê ¾_q¿ê ¾_ñ¾ö=]¿ê ¾ê ¾‡o¿ `ï²½ƒ3†¾÷v¿œ•Ÿ½ê ¾_q¿ê ¾ê ¾‡o¿ê ¾Ùd「¾_q¿ `ï²½ƒ3†>÷v¿ê ¾Ùd「>_q¿ê ¾ê >‡o¿œ•Ÿ½ê >_q¿ £ê¨½R%Ó>vBh¿œ•Ÿ½ê >_q¿ê ¾ê >‡o¿ ½ä¨>_q¿ ˜ê¨½)%Ó>Bh¿ ½ä¨>_q¿ê ¾ê >‡o¿ê ¾_ñ>ö=]¿ s꨽3%Ó>€Bh¿ ½ä¨>_q¿ê ¾_ñ>ö=]¿ _ñ>0æ`¿ 7œ½¨ ?JXW¿ê ¾_ñ>ö=]¿ê ¾'E?’$I¿ _ñ>0æ`¿ aœ½¤ ?LXW¿ _ñ>0æ`¿ê ¾'E?’$I¿ _?’$I¿ 8œ=¤ ¿LXW¿ _ñ¾0æ`¿ê >_ñ¾ö=]¿ _¿’$I¿ cœ=¨ ¿JXW¿ _¿’$I¿ê >_ñ¾ö=]¿ê >'E¿’$I¿ ‰ê¨=1%Ó¾~Bh¿ ½ä¨¾_q¿œ•Ÿ=ê ¾_q¿ _ñ¾0æ`¿ ¯ê¨=6%Ó¾~Bh¿ _ñ¾0æ`¿œ•Ÿ=ê ¾_q¿ê >ê ¾‡o¿ tê¨=*%Ó¾Bh¿ _ñ¾0æ`¿ê >ê ¾‡o¿ê >_ñ¾ö=]¿ `ï²=ƒ3†¾÷v¿œ•Ÿ=ê ¾_q¿ê >Ùd「¾_q¿ê >ê ¾‡o¿ `ï²=ƒ3†>÷v¿ê >Ùd「>_q¿œ•Ÿ=ê >_q¿ê >ê >‡o¿ £ê¨=R%Ó>vBh¿œ•Ÿ=ê >_q¿ ½ä¨>_q¿ê >ê >‡o¿ œê¨=3%Ó>€Bh¿ê >ê >‡o¿ ½ä¨>_q¿ _ñ>0æ`¿ vê¨=*%Ó>Bh¿ê >ê >‡o¿ _ñ>0æ`¿ê >_ñ>ö=]¿ 8œ=¤ ?LXW¿ _ñ>0æ`¿ _?’$I¿ê >_ñ>ö=]¿ _œ=¨ ?JXW¿ê >_ñ>ö=]¿ _?’$I¿ê >'E?’$I¿ ·œe>¿ð¿JzR¿ê >_ñ¾ö=]¿ê >_ñ¾FER¿ê >'E¿’$I¿ ±œe>¾ð¿KzR¿ê >'E¿’$I¿ê >_ñ¾FER¿ê >¿’$I¿ È¿v>ğ;Ã/b¿ê >_ñ¾ö=]¿ê >ê ¾‡o¿ê >_ñ¾FER¿ ®¿v>Ο;Â/b¿ê >_ñ¾FER¿ê >ê ¾‡o¿ê >ê ¾kŽd¿ 7H‚>7H‚¾–Ùn¿ê >Ùd「¾_q¿Ùd「>ê ¾_q¿ê >ê ¾‡o¿ 7H‚>7H‚¾•Ùn¿ê >ê ¾‡o¿Ùd「>ê ¾_q¿ê >ê ¾‡o¿ H‚> H‚¾›Ùn¿ê >ê ¾‡o¿ê >ê ¾‡o¿ê >ê ¾kŽd¿ ƒ3†>`ï²½÷v¿Ùd「>ê ¾_q¿ê >œ•Ÿ½_q¿ê >ê ¾‡o¿ ƒ3†>`ï²=÷v¿ê >œ•Ÿ=_q¿Ùd「>ê >_q¿ê >ê >‡o¿ 7H‚>7H‚>–Ùn¿Ùd「>ê >_q¿ê >Ùd「>_q¿ê >ê >‡o¿ 7H‚>7H‚>•Ùn¿ê >ê >‡o¿ê >Ùd「>_q¿ê >ê >‡o¿ H‚> H‚>›Ùn¿ê >ê >‡o¿ê >ê >‡o¿ê >ê >kŽd¿ ±¿v>ÄŸÍ>Ã/b¿ê >ê >‡o¿ê >_ñ>ö=]¿ê >ê >kŽd¿ Ç¿v>ΟÍ>Â/b¿ê >ê >kŽd¿ê >_ñ>ö=]¿ê >_ñ>FER¿ ·œe>¿ð?JzR¿ê >_ñ>ö=]¿ê >'E?’$I¿ê >_ñ>FER¿ °œe>¾ð?KzR¿ê >_ñ>FER¿ê >'E?’$I¿ê >?’$I¿ OS·>ëS ¿m¨I¿ê >_ñ¾FER¿É>_ñ¾’$I¿ê >¿’$I¿ ¢ÄÃ>¥ÄþIXW¿ê >_ñ¾FER¿ê >ê ¾kŽd¿É>_ñ¾’$I¿ ¦ÄÃ
埃文
什麼是STL文件? –
正如你剛纔所說的,請檢查[我如何提出一個好問題?](http://stackoverflow.com/help/how-to-ask)請稍等。 –
https://en.wikipedia.org/wiki/STL_(file_format)#Binary_STL – Evan