2011年11月21日 星期一

OpenGL Texture 圖檔限制

根據[1]的教學,Texture Image 2D 使用的image
  1. 圖檔大小的限制為:長寬均要是2的次方。
  2. 讀進來的圖檔,其長寬均被當成 1
  3. 左下角為(0,0),右上角是(1,1)
Ref: [1] OpenGL 中使用貼圖

2011年11月1日 星期二

Ubuntu10.04 更新 Code::Blocks 8.04 至10.04

Ubuntu 軟體中心有 Code::Blocks 軟體可供下載安裝,
但使用者若不是採用「正常發佈」更新方式,
使用的軟體一直都會是舊版的。

本人在使用 Code::Blocks 即遇到該狀況,
想將 Code::Blocks 8.04 升級到 Code::Blocks 10.04。

升級方式:
  1. 先到官網下載最新版 Code::Blocks 安裝檔 (debian 版本) 
  2. 將安裝檔解壓縮
  3. 若是下載Linux 32-bit,解壓縮後的資料夾為/i386
  4. 開啟終端機,進入 /i386 資料夾
  5. 指令:sudo dpkg -i *.deb
  6. 安裝完成
    • 若更新管理員出現問題,請點選「部份升級」。
Reference: Installing Code::Blocks nightly build on Ubuntu

文章更新日期:2012.01.04

2011年9月13日 星期二

android 手機寫入 Excel

關鍵程式碼:

private void open_book(){

    if(!Environment.getExternalStorageState().equals(Environment.MEDIA_REMOVED) ){

       

    try {

        File SDCardpath = Environment.getExternalStorageDirectory();

                File myDataPath = new File( SDCardpath.getAbsolutePath() + "/stay" );

               

        if( !myDataPath.exists()) myDataPath.mkdirs();

           

            //構建Workbook物件, 唯讀Workbook物件

                           //Method 1:創建可寫入的Excel工作薄

                          jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(SDCardpath.getAbsolutePath() + "/stay/1234.xls"));

                           jxl.write.WritableSheet ws = wwb.createSheet("Test Sheet 1", 0);

                           jxl.write.Label labelC = new jxl.write.Label(0, 0, "This is a Label cell");



                           ws.addCell(labelC);

                      

                           wwb.write();

                           wwb.close();

          } catch (Exception e) {

        e.printStackTrace();

           }

Coding by Zick

參考:1.Android學習筆記 - 存取SD卡

2011年8月26日 星期五

Ubuntu one 切換使用者帳戶的方式

1.將連結的設備移除,下次點選Ubuntu one 即會回到帳號、密碼的登錄畫面。則會出現如圖中綠色的訊息。

2011年8月25日 星期四

解決 Eclipse 中文、日文亂碼顯示的問題

1.在出現亂碼的專案或文件案右鍵-> Properties

2.在選單右側的"Text file encoding"->選擇適當的編碼方式,例如UTF-8

3.完成

2011年8月24日 星期三

解決 Eclipse @Override 的問題

步驟:1. 在Eclipse上方的選單,選擇選擇選擇Project->Properties->Java Compiler

然後會出現下圖畫面:

選擇右方的Compiler compliance level: 將level:1.5改成 1.6 (如下圖)

選擇Yes

系統更新編譯環境

完成

2011年7月12日 星期二

Eclipse 更改字體大小

方法:
  • Window-> Perferences-> General-> Appearance-> Colors   and   Fonts-> Java-> Java   Editor   Text   Font-> Change...

2011年5月16日 星期一

Ubutu Firefox "bookmarkable-user-auth" 的問題

 
解決方式: 在Firefox瀏覽器上找到「工具」->「附加元件」->「擴充到件」->停用Binwood這個元件->重新開啟瀏覽器即完成。
refer:http://ubuntuforums.org/showthread.php?t=1633932


2011年4月9日 星期六

在Android Device上使用多個 sensors 的coding方式

首先設定擷取Android手機的感應訊號

sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
範例:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
        
        view = new MySurfaceView(this);
        setContentView(view);
    }
再來取得sensor的種類,並註冊之

sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_FASTEST);
        
sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_FASTEST);
範例:

@Override
    protected void onResume() {
        super.onResume();
        
        sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_FASTEST);
        
        sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_FASTEST);
        
    }
再者比較關鍵的部份,讀取各自的訊號。
以下使用if else的方式來取得G-sensor和Orientation的訊號。
if(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
          // G-sensor的執行動作  
}
        
if(event.sensor.getType() == Sensor.TYPE_ORIENTATION) {
          // Orientation的執行動作
}
範例:
public void onSensorChanged(SensorEvent event) {
        
        if(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
            view.onValueChanged(event.values);
        }
        
        if(event.sensor.getType() == Sensor.TYPE_ORIENTATION) {
            
        }
    }
最後記得要在程式結束點取消Sensors的註冊
範例:
@Override
    protected void onPause() {
        super.onPause();
        sensorManager.unregisterListener(this);
    }

2011年3月22日 星期二

Ubuntu 常見問題

Ubuntu gcin輸入法設定

  1. 到Synaptic套件管理程式收尋 gcin
  2. 安裝套件 gcin、gcin-qt3-immodule、gcin-qt4-immodule
  3. 設定gcin自動更新
  4. 到系統->管理->語言支援->鍵盤輸入法系統->選擇gcin
  5. 登出->登入
  6. 完成
簡易的安裝方式:
在終端機下輸入以下指令:
  1. sudo add-apt-repository ppa:elleryq/gcin
  2. sudo apt-get update
  3. sudo apt-get install gcin