OpenInventor中文字元的顯示和解決方法

2021-05-26 03:09:52 字數 1197 閱讀 9452

很多人問我如何顯示漢字,總是乙個乙個地說,很麻煩,特此寫在這裡——

原因:openinventor支援freetype字型,但漢字採用unicode編碼,故而無法直接正確顯示

解決:使用freetype字型,或者,將unicode編碼轉換為freetype可以識別的字型(使用內建的freetype引擎)

本文採用第二種方法。

效果兩個:

1 楷體

2 微軟雅黑  字型

關鍵**:

soseparator *textsep = new soseparator;

textsep->ref();

sofont *fonttype = new sofont;

fonttype->name = "times new roman : italic";

//fonttype->name = "微軟雅黑.ttf";

fonttype->name = "simkai.ttf";

fonttype->size = 30;

textsep->addchild(fonttype);

// chinese text

const wchar_t *str = l"open inventor程式設計從入門到精通";

sotext2 *textprop = new sotext2;

textprop->justification = sotext2::center;

textprop->string.setvalue(str);

textsep->addchild(textprop);

// build up

root->addchild(textsep);

error lnk2019: 無法解析的外部符號 "__declspec(dllimport) public: void __thiscall somfstring::setvalue(unsigned short const *)

這是因為 wchar_t 的問題,解決:

工程屬性 c/c++語言 將……視為內建型別  yes

OpenInventor的節點小結

1 法線自動產生引數 soshapehints creaseangle 當兩個相鄰平面的法向量夾角小於該弧度時,兩個平面共享法向量 否則,分別計算各自的法向量。當該弧度為0時,相鄰平面的交界處變化比較明顯 一般可以設定該值為pi。3 材質繫結 當somaterial提供的顏色資料少於繫結的目標個數時...

Open Inventor練習 檔案讀取

open inventor採用soinput和sodb讀取許多三維格式儲存檔案,如iv等檔案,這個就是檔案讀取的演示例子。define coin dll define sowin dll 載入coin庫檔案 ifdef debug pragma comment lib,sowin1d.lib pra...

輸出中文字元

輸出中文字元 要想在圖形中輸出中文字元,需要對輸出的中文字元進行編碼。使用iconv 函式,可以把一種編碼的字元,轉換為其他編碼的字元。下面介紹在圖形中輸出中文字元的方法,建立乙個新圖形 image imagecreate 400,200 設定背景,分配顏色 bgcolor imagecoloral...