Beziex自由曲面バーチャル研究室
(C)1999-2012 EISHIN All Rights Reserved.

Beziex Ts (Home)
 & ダウンロード


Beziex LG (Home)
 & ダウンロード




マニュアル目次

1章 前知識
2章 新ベジェ境界曲面
3章 プログラムについて
4章 サンプル・アプリケーション
5章 自由曲面関数ライブラリ
6章 bxCore.h
7章 bxDB.h
8章 bxProc.h
9章 数値関数
10章 サンプル・ベースファイル



Copyright 1999-2011 EISHIN

4章 サンプル・アプリケーション

1. 概要

このサンプル・アプリケーションは
自由曲面Viewer & 変形体験ソフト
というべきものである。モデラー(モデリングソフト)だと思ってダウンロードされると、必ず後悔するので御了承願いたい(サンプルとはあくまでも、そのソースコードを見せるためのもの)。
このソフトはサンプルと書くだけあって、元々、自由曲面関数ライブラリの検証用に作ったものである。よってユーザーインターフェイスの類いは、まったくと言っていいほど付いていない。サーフェイスの回転や変形をする際はすべて数値入力で行うので、作った本人でさえ使いにくくて困るほどである。
しかしサンプルといっても4000ステップを超えるプログラムであり、またOpenGLも使用している。またモデラーではないので、アプリケーション内でサーフェイスを作成することはできないが、10章で述べるサンプル・ベースファイルを新たに作ることで、新しい物体を表示変形できるようになる。


2. 起動時の操作

1)  BeziexView???フォルダ内のBeziexView.exe(Release版)またはBeziexView_debug.exe(Debug版)をダブルクリック(???にはバージョンNoが入っている)
2)  「ファイルを開く」ダイアログが表示されるので、サンプル・ベースファイル(拡張子.bxb)を選択


3. メインウインドウ

メインウインドウは、左右2つの画面に分かれており
左側・・・ワイヤーフレーム画面
右側・・・シェーディング画面
となっている。


3-1. ワールド座標系とローカル座標系

当サンプルは右手座標系を採用している。そして常に固定されている座標系をワールド座標系、サーフェイスの回転に伴って一緒に回転する座標系をローカル座標系と呼んでいる。この2座標系の原点は常に同位置で、各画面の中央にある。

1) ワールド座標系
各画面の左右をX方向(右が正値)、上下をY方向(上が正値)、前後をZ方向(手前が正値)とする。各要素は(WX,WY,WZ)で表される。

2) ローカル座標系
起動時はワールド座標系と同じであるが、サーフェイスの回転に伴って一緒に回転する。各要素は(LX,LY,LZ)で表される。


3-2. ワイヤーフレーム画面

各要素を表示するための画面で、表示される要素は次のようになっている。

1) 境界曲線
メインとなる表示要素で、グレイのワイヤーフレームにて表される。

2) 選択頂点/ハンドル/コントロールバー
頂点、ハンドル、コントロールバーのうち、選択されたもの(必ず各1個)を表示する。実際には選択頂点は表示されていないが、選択ハンドルの根元が選択頂点である。そしてこれら選択要素に対して、変形等が行われることになる。選択ハンドル・・・赤。選択コントロールバー・・・青。

3) 選択周辺部
選択頂点/ハンドル/コントロールバーの周辺にある「頂点」、「ハンドル点」、「コントロールバー先端」等を繋ぎ、一部をシェーディングされた面にした部分。
3次元空間上でハンドル、コントロールバーが単独で描画されていると、どの向きに伸びているのか直感的に認識することが困難である。しかしシェーディング、隠面消去された面があると、3次元状態が理解しやすくなる。そこで補助的に選択周辺部も描画することにより、選択要素を認識しやすくしている。線・・・マゼンタ。面・・・青っぽいグレイ。


3-3. シェーディング画面

サーフェイスの形状をシェーディングして表示する画面である。

1) 物体
この画面のメインであり、表面は赤、裏面は青でシェーディングされている。

2) メッシュ
ローカル座標系を示している。ただしメッシュの中心はX=Y=0、Z≠0である(原点ではない)。メッシュ全体の3/4はグレイの線であるが、残り1/4は赤と青の線となっている。このうち赤の線はX方向を表しており、青の線はY方向を表す。またこの赤青の部分(全体の1/4)はXY共に正値であることを示す。
またメッシュの四隅から伸びている緑の線はZ方向を表している。そして緑線の根元(メッシュと接している点)から先端に向かう方向が、Z値の大きくなる方向である。


4. 操作法

4-1. ファイルメニュー

1) アプリケーションの終了
このサンプル・アプリケーションを終了する。


4-2. 表示メニュー

1) サーフェイスの回転
ワールド座標系の各軸を中心に、サーフェイスを回転させる。入力ダイアログが表示されるので、回転させたい角度(degree)を入力する。

2) サーフェイスの方向
サーフェイスの方向を基準方向に戻す。この基準方向は4種類あり、それぞれ
a)  標準方向・・・初期方向
b)  平面方向・・・上から眺める
c)  正面方向・・・手前から眺める
d)  側面方向・・・右から眺める
となっている。

3) 選択
頂点/ハンドル/コントロールバーを選択する。メニューを選ぶと入力ダイアログが開かれ、
a)  頂点 ・・・サーフェイス全体の各頂点に付けられた番号
b)  ハンドル ・・・ハンドル番号(共有頂点上)
c)  コントロールバー ・・・コントロールバー番号(共有頂点内の基準ハンドル上)
のいづれかについて、現在の番号が表示されるので、選択したい番号を入力する。ただしb、cの共有頂点はaであり、cの基準ハンドルはbである。


4-3. コントロールメニュー

1) 頂点の位置
選択頂点の位置(ローカル座標系)を変更する。メニューを選ぶと入力ダイアログが開かれ、そこに現在の位置が数値として表示される。ここで持っていきたい位置を数値で入力すると、選択頂点がその位置に動く(数値は-2〜2ぐらい)。

2) ハンドルの方向
選択ハンドルの方向(ベクトル)を変更する(ローカル座標系)。メニューを選ぶと入力ダイアログが開かれ、そこに現在のハンドルベクトルが数値として表示される。ここで変えたいベクトル値を入力すると、ハンドルベクトルを変更できる(数値は-1〜1ぐらい)。
このサンプルでは、ハンドル方向を変えるとレベル2要素の頂点平面/頂点法線も変更されるので、隣接曲面との滑らかさが保たれる。

3) コントロールバーの方向
選択コントロールバーの方向(ベクトル)を変更する(ローカル座標系)。メニューを選ぶと入力ダイアログが開かれ、そこに現在のコントロールバーベクトルが数値として表示される。ここで変えたいベクトル値を入力すると、コントロールバーベクトルを変更できる(数値は-1〜1ぐらい)。
このサンプルでは、コントロールバー方向を変えるとレベル2要素のハンドル点平面/ハンドル点法線も変更されるので、隣接曲面との滑らかさが保たれる。


4-4. 注意事項

1)  コントロールバーの方向変更や、ハンドルやコントロールバーの長さ変更には、場合に応じて制限が設けられている。よって必ずしもその数値通りに変更されるとは限らない。
2)  頂点位置やハンドル方向の変更により、ある曲面のねじれ等が極端に大きくなった場合、その曲面はシェーディング画面に表示されないことがある。





(C)1999-2012 EISHIN All Rights Reserved.