2013年2月28日 星期四

3D text on Qt with OpenGL


利用QPainterPath算出polygon之後,就可以畫出邊框
QPainterPath path;
path.addText(QPointF(0, 0), QFont("Arial", 100), QString::fromUtf8("你要不要喝紅茶ˊ_>ˋ?"));
GLuint id = glGenLists(1);
glNewList(id, GL_COMPILE);
foreach(QPolygonF polygon, path.toSubpathPolygons()){
    glBegin(GL_LINE_LOOP);
    foreach(QPointF point, polygon){
        glVertex3f(point.rx(), -point.ry(), 0);
    }
    glEnd();
}
glEndList();


最後再利用glu提供的tessellation功能,繪出文字

2013年2月23日 星期六

可在mac和windows上執行的安裝光碟

首先建一個iso檔
hdiutil makehybrid /source/folder/name/ -o outputfile.iso
打開檔案
hdiutil attach -readwrite outputfile.iso
將需要的檔案丟入光碟裡
在將非mac的檔案隱藏
SetFile -a V /path/to/your/folder/name-of-file-to-hide
設定放入光碟後,預設開起的資料夾
sudo bless -folder "/Volumes/discName" -openfolder "/Volumes/discName"

參考文件
Creating a dual Mac/Win Autorun CD
Creating Cross Platform Windows and Mac Installer CDs

2013年2月18日 星期一

QGraphicsProxyWidge在mac下無法調整大小

 
主要是Mac不像windows有邊框,所以不像windows只要
scene->addWidget(widget, Qt::Dialog);
就好了。所以需要加上QSizeGrip

2013年2月17日 星期日

發佈Qt應用程式到mac


在Mac上的應用程式,大多不是用安裝,而是解開dmg,將app拖到電腦裡。

2013年2月6日 星期三

html5版的馬賽克

  1. 利用 input type="file"選取本地端圖檔
  2. 用FileReader的readAsDataURL讀取圖檔
  3. 將圖畫到canvas
  4. 用range來當sliderbar,注意firefox不支援range
  5. 接下來就是拿canvas來做影像處理了
  6. 最後,再利用canvas.toDataURL("image/jpeg")轉回圖檔