Article View: fj.comp.theory
Article #75Re: 点列の間引き
From: S.Kubo
Date: Mon, 16 Mar 1998 00:00
Date: Mon, 16 Mar 1998 00:00
65 lines
3193 bytes
3193 bytes
久保です。 fj.comp.theoryにも振っておきます。 manabu ishi wrote in message <6e7fqr$2fr@sunsp.sunsp.mcor.co.jp>... >はじめまして。 >石原といいます。 > >現在私はCAD関係のプログラム開発を行っているのですが、 >一つ問題にぶつかってしまったので、皆さんのお力を >お貸し頂きたく投稿いたしました。 >【 問題 】---------------------------- >その問題とは、単純に言ってしまえば、 > > (曲線を表す)点列データを間引きたい。 --略-- >1.点列のデータを数式(曲線)に変換し、 > >2.あるアルゴリズムを使用して数式から新規に点列を生成。 > 元の形状をなるべく維持するため、以下の点に注意。 > ・直線的な個所の点列の間引率を高くし、 > ・カーブのきついところの点列の間引き率を低く押さえる #はずしていません様に・・。 曲線、て言うかトレースポイントが幾つかあるとして。 始点から終点まで連続的に番号が付いていること。 1.始点->終点を線分で結ぶ。 2.中間の点を順番に以下の処理をする。 3.「1」の線分と「2」への距離がある誤差範囲を超えたら 始点->誤差範囲を超えた点、誤差範囲を超えた点->終点 の2つを新しい線分にする。 4.今度は2つの線分に対して「3」の処理を行う。 5.線分と点の距離が誤差より大きい場合は次々に線分が生成される。 6.再帰的に処理を行い、全ての線分から点の距離が誤差範囲内なら 処理(再帰)は終了する。 7.この処理によってできた線分(折れ線)が元を間引いた点列。 誤差範囲を大きく取れば、おおざっぱな折れ線に、小さく取れば 元に近くなります。 これで問題提起の「2」を満たすと思います。 更にデータ数を減らしたければ、誤差を多少大きく取って、 おおざっぱな折れ線にした後、その点から カーブ曲線(バットランドかスプライン)を生成した方が良いと思います。 式にもよりますが、折れ線をバットランドにすると生成された折れ線に 近いカーブになり(ちょっとカクカクする)、スプラインは曲率がでます。 よって、 1.元の点列を折れ線補完する。 2.折れ線からカーブを生成。 でも旨く行くと思います。 折れ線補完のプログラムは再帰を使用し、配列処理で指標制御を 上手にコントロールすれば短いロジックで行きます。 長さ計算・直線化以外の主要ロジックはC言語で15行程度か? ~~~~~~~~~~久保覚~~ >・・<。oO E-mail rest@big.or.jp (WEB) ミ__ミ E-mail pao@mfi.or.jp (Private) URL http://www2.big.or.jp/~rest/ _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
Technical Details
Message-ID:
<6eh7ce$h7t@mail.mfi.or.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<6e7fqr$2fr@sunsp.sunsp.mcor.co.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 10a0b6,1d835a804232b23b,start X-Google-Attributes: gid10a0b6,public X-Google-Thread: f4956,7a88fc761ab60d2a X-Google-Attributes: gidf4956,public From: "S.Kubo" <pao@mfi.or.jp> Subject: Re: 点列の間引き Date: 1998/03/16 Message-ID: <6eh7ce$h7t@mail.mfi.or.jp> X-Deja-AN: 334307882 Content-Transfer-Encoding: 7bit References: <6e7fqr$2fr@sunsp.sunsp.mcor.co.jp> Content-Type: text/plain; charset="iso-2022-jp" X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 Organization: Mount Fuji Internet. Mime-Version: 1.0 Newsgroups: fj.comp.theory,fj.sci.math