🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.comp.theory
Article #75

Re: 点列の間引き

#75
From: S.Kubo
Date: Mon, 16 Mar 1998 00:00
65 lines
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-mail
References: <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