アルゴリズム « MISCELLANEUOS DATA STORAGE

‘アルゴリズム’ カテゴリーのアーカイブ

[Algorithm] 木目ハッチの作図

2012 年 1 月 3 日 火曜日

家具や什器の施工図作成の際に、木どりや貼物の木目方向を作図する際、木目のハッチパターンで表現することが多いです。

ハッチの作図には、金桜氏の木目作図という外部変形や図形「ハッチ」発展系などの外部変形を利用します。

同梱されている木目の感じが好きなので、私は金桜氏の外部変形をよく利用していますが、この場合、描画が矩形領域に限られることと、指定領域によって木目のパターンが細かくなり過ぎてしまう短所があります。

実際の什器製作では、長手方向でも8尺~10尺程度でハギ目をつける必要があります。外部変形でも8尺程度で木目作図しておいて、実際の木目の割付に合わせてコピー&ペーストします。 この時、縮尺に -1 を入れて対称パターンを作図すると、あたかもツキ板でブックジョイントしたようなパターンを作図できます。

今後、木目ハッチ外変の改修をする際のメモとしては、

  1. パターンデータはあらかじめ、8尺 x 4尺程度で作成しておく
  2. 選択した領域に対して、芯割り又は芯マタギで割付し、対称割付(ブックジョイント)で作図
  3. 外形データでトリミングする
  4. ノンストップパターンも使用できるように対称割付(ブックジョイント)はオプションにしておく

[Algorithm] Jw_cad外部変形の楕円弧データ

2011 年 7 月 2 日 土曜日

Jw_cad  の外部変形で出力される楕円弧データは下記の形式になっています。

ci [x] [y] [r] [始角] [終角] [偏平率] [軸角]

ここで、始角と終角は実際の座標系の角度と一致しないことに注意が必要です。

軸角をβ、扁平率をα、終角をθend とすると、θend は軸角を基準として扁平率 1.0 の真円に投影された角度で出力されます。

ここから、楕円弧の端点を求めるには、回転座標を用いて

x y = x 0 y 0 + cos β sinβ - sinβ cosβ r cosθ α r sinθ = x 0 y 0 + α + 1 r cos θ + β + 1 - α r cos θ - β 2 α + 1 r sin θ + β + α - 1 r sin θ - β 2

で求められます。
実際の中心角を求めるには、この端点と中心線を結ぶベクトルの逆正接を求めます。

[Algorithm] 円と線分の交差判定

2011 年 6 月 26 日 日曜日


円と有限線分の交差判定のアルゴリズムです。
実装はこちらのサイトを参考にしました。
  

線分ABの始点から終点に向かうベクトルを
v

、線分の短点から円の中心に向かうベクトルをそれぞれ
c、 b

 とします。 円の半径を r とすると、円と直線の交差する条件は以下のようになります。

 

(1)   v c < 0    かつ    c < 0    ならば交差

(2)   v c 0    のとき:

  (2-1)   v c > v 2    かつ    b <    ならば交差

  (2-2)   v c 0    かつ    c 2 - v c 2 v 2 < r 2    のとき:

    (2-2-1)   c > r    または    b > r    ならば交差

 
 
最後の (2-2-1) は、線分の両端が円の内部にある条件です。
前述のサイトには、この条件が含まれていなかったため追記しました。
 
 
※ この記事には MathML を使用しています。 Internet Explorer を使用している方は、MathPlayer、Chrome では MathML2CSS などをインストールする必要があるそうです。