こんばんは、川合です。 I.Tak. さんは 2003/05/28 18:39:10 の「[OSASK 6203] Re: マウス加 速も」で書きました: >> x += (a * dx + b * dx * dx) >> 10; (引用中略) > 二次関数でそういうパラメータだと、「dx=1 の時は x+=1 になって >ほしい (ゆっくりの時は線形に反応してほしい)」という用件を満たすの >が難しいかも知れません。(x,y)=(0,0),(1,1) を通る二次関数を使って > x += ((a*dx*(dx-1))>>10)+dx ; >などとすると、自由度が1しかありませんし。 うーん、そうですか・・・。僕の考えとは違うみたいですねえ。 僕としてはたとえば、ゆっくりのときはもちろん線形になってほしい ですが、1ドットを選ぶときはデフォルト以上に鈍感になってほしいの で、 a = 512, b = 4 くらいがいいんじゃないかと思っていました。これだと、dx < 16の時 は、2次項がほとんど効いてこないので、目にみえる加速はありません 。そしてリニア項が0.5になるので、今までよりきめこまかく動かせま す。dxが50とかになると、+10くらい加速してくれます。 繊細さを残しつつ、もっと加速があったほうがいいかもしれません。 それだと、a = 512, b = 16なんてどうでしょうか。これだと、dx < 8 ならほぼリニアで、dxが50なら加速は+39です。 あああ!ちょっと待った!・・・僕の提案は次のように修正します。 修正理由は、これだとdxが負の場合にうまくいかないからです。2次項 はいらないです。奇関数であるべきだから、1次と3次だけですね。 x += ((a + b * dx * dx) * dx) >> 10; これでうまいパラメータの組み合わせを見付ければいいんじゃない かなあ。 > 川合さんがKHBIOSに専念するらしいので、OSASKをがんばっていじろう >と思いまして。 そのとおりであります。助かります。 >> 僕はちまちまとteditc02本体や辞書コンパイラ、そしてZAKKYさんの >> 辞書を改良しています。とくに辞書コンパイラは圧倒的に高速になって >> います。辞書はまた3割未満の完成度なんですが、それでもZAKKYさんの >> もとのバージョンよりずっと使いやすくなっています。これは今週中に >> 公開します。 > 実は川合さんが早々に音をあげるのを期待してたんですが……(ぉぃ もしかして、うまくいかない方が良かった??? 辞書さえ何とかなれば、今のへっぽこなアルゴリズムでもそんなに不便 ではないと実感しています。もちろんもっと賢いアルゴリズムのほうがも っと快適なのは間違いないですが。 それでは。 -- 川合 秀実(KAWAI Hidemi) OSASK計画代表 / システム設計開発担当 E-mail:kawai !Atmark! imasy.org Homepage http://www.imasy.org/~kawai/