[Squeak-ja: 2957] スクリプトの中で三角関数を利用する方法

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 2957] スクリプトの中で三角関数を利用する方法

八木則茂
スクイーカの皆様

八木ともうします。はじめまして。
デジタルハリウッド大で実施されている小学生向けのワークショップの
サポータに月1程度ですが参加しています。

最近、[hidden email] のメーリングリストに参加させていただきました。

スクリプトの中で、三角関数を使用したいと考えているのですが
方法がわかりません。ご教授いただけないでしょうか。

具体的には

        角度 = arccos((a^2+b^2-c^2)/(2*a*b))

                * arccos は cos の逆三角関数のつもりで書いています。
                *余弦定理を使用して、3辺がわかっている三角形から角度を求め
ています。

を計算させていたいということです。

よろしくお願いいたします。

                                        八木

Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 2958] Re: スクリプトの中で三角関数を利用する方法

大道 裕
大道です。

スクイークは全くの初心者で、スクリプトの書き方も
良くわからないのですが、「Text」オブジェクトに
表示させてみました。

インスタンス変数 a,b,cに値を設定し

self setCharacters: ((((a*a)+(b*b)-(c*c))/(2*a*b))arcCos)asString

で角度(ラジアン)が表示されます。

八木則茂 wrote:

> スクリプトの中で、三角関数を使用したいと考えているのですが
> 方法がわかりません。ご教授いただけないでしょうか。
>
> 具体的には
>
> 角度 = arccos((a^2+b^2-c^2)/(2*a*b))
>
> * arccos は cos の逆三角関数のつもりで書いています。
> *余弦定理を使用して、3辺がわかっている三角形から角度を求め
> ています。

--
****************************************
   大道 裕

   かわうそ会ホームページ
http://suiren.mitaka.tokyo.jp/kawauso/

   三鷹市水泳連盟ホームページ
http://suiren.mitaka.tokyo.jp/
****************************************
Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 2960] Re: スクリプトの中で三角関数を利用する方法

Kazuhiro ABE-3
In reply to this post by 八木則茂
阿部@新百合です。

それでは、私はeToys(タイルスクリプト)を使った方法をご紹介します。
どんなモーフ(オブジェクト)を使ってもよいのですが、ここでは楕円を使います。
部品フラップから楕円を引っ張り出して、ビューワを開き、幾何カテゴリに切り
替えます。
eToysの世界(ワールド)では左下が原点です。楕円を動かすと「x座標」と「y座標」
の値が変化するのが分かります。
これらの値は、原点、楕円の中心、楕円の中心からx軸に下ろした垂線とx軸の交
点をそれぞれ頂点とした直角三角形の底辺と垂辺の長さと考えることができます。
このとき、斜辺は「距離」、底辺と斜辺のなす角度は「θ値」として表されます
(つまり極座標ですね)。
したがって、三辺中二辺の長さを決定すれば、残りの一辺とθ値が求まることに
なります。

スクリプトとしては、単に「x座標」「y座標」「距離」の内、2つに適当な値を代
入し、チクタクすると残りの値とθ値が決まります。
このとき、一度ビックリで実行しただけでは収束せず、何回か繰り返す必要があ
るのが面白いところです。これは制約解消の例といえるでしょう。

今話題のSuperSwiki2にサンプルのプロジェクトを置きました。できれば、ご自分
でお試しになったあとにご覧ください。

http://squeakland.jp/seaside/SBSuperSwiki?_s=MgHWLpvmpECNEKln&_k=ffYROmeB

また、大道さんが書かれているようなSmalltalkを使う方法も面白いので、そちら
のお話もぜひお続けください。

 //abee
--
阿部 和広  EMAIL [hidden email]
Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 2962] Re: スクリプトの中で三角関数を利用する方法

八木則茂
大道さん、阿部さん

ここまで教えていただけたら
後は私が理解するだけだと思います。

メールの内容を理解して
がんばります。

ありがとうございました。

                        八木

Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 2964] Re: スクリプトの中で三角関数を利用する方法

Thoru Yamamoto
In reply to this post by Kazuhiro ABE-3
やまもとです。

阿部さんのレスを読まずに
書き込んでしまいました。(汗)


-------------------------------
Thoru Yamamoto
mail :    [hidden email]
www:    http://www.thoruman.com
-------------------------------
----- Original Message -----
From: "Kazuhiro ABE" <[hidden email]>
To: "Squeak discussion in Japanese" <[hidden email]>
Sent: Sunday, May 21, 2006 7:05 PM
Subject: [Squeak-ja: 2960] Re: スクリプトの中で三角関数を利用する方法


> 阿部@新百合です。
>
> それでは、私はeToys(タイルスクリプト)を使った方法をご紹介します。
> どんなモーフ(オブジェクト)を使ってもよいのですが、ここでは楕円を使います。
> 部品フラップから楕円を引っ張り出して、ビューワを開き、幾何カテゴリに切り
> 替えます。
> eToysの世界(ワールド)では左下が原点です。楕円を動かすと「x座標」と「y座
標」

> の値が変化するのが分かります。
> これらの値は、原点、楕円の中心、楕円の中心からx軸に下ろした垂線とx軸の交
> 点をそれぞれ頂点とした直角三角形の底辺と垂辺の長さと考えることができます。
> このとき、斜辺は「距離」、底辺と斜辺のなす角度は「θ値」として表されます
> (つまり極座標ですね)。
> したがって、三辺中二辺の長さを決定すれば、残りの一辺とθ値が求まることに
> なります。
>
> スクリプトとしては、単に「x座標」「y座標」「距離」の内、2つに適当な値を代
> 入し、チクタクすると残りの値とθ値が決まります。
> このとき、一度ビックリで実行しただけでは収束せず、何回か繰り返す必要があ
> るのが面白いところです。これは制約解消の例といえるでしょう。
>
> 今話題のSuperSwiki2にサンプルのプロジェクトを置きました。できれば、ご自分
> でお試しになったあとにご覧ください。
>
> http://squeakland.jp/seaside/SBSuperSwiki?_s=MgHWLpvmpECNEKln&_k=ffYROmeB
>
> また、大道さんが書かれているようなSmalltalkを使う方法も面白いので、そちら
> のお話もぜひお続けください。
>
>  //abee
> --
> 阿部 和広  EMAIL [hidden email]
>


Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 2966] Re: スクリプトの中で三角関数を利用する方法

Masashi Umezawa
In reply to this post by Kazuhiro ABE-3
こんにちは
梅澤です。

>
> 今話題のSuperSwiki2にサンプルのプロジェクトを置きました。できれば、ご自分
> でお試しになったあとにご覧ください。
>
> http://squeakland.jp/seaside/SBSuperSwiki?_s=MgHWLpvmpECNEKln&_k=ffYROmeB
>

SuperSwiki2のURLは個人ごとに動的に作られるものになりますので、他の人からは
そのままではアクセスできません。ページ上部に出ている参照用のURLをお使いください。

「二辺の長さから角度を求める」
http://squeakland.jp/seaside/SBSuperSwiki/86c4a74e-70e9-4320-8de4-af398c3a480b

と思います。

#SuperSwiki2ですが、速くもスペイン語版の翻訳ファイルを投稿してくれた方がいます。
#アグレッシブに開発していきますので、皆さんご意見をお聞かせください。

ではでは。
---
[:masashi | ^umezawa]
Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 2967] Re: スクリプトの中で三角関数を利用する方法

Kazuhiro ABE-3
阿部@新百合です。

On Sun, 21 May 2006 22:05:17 +0900
Masashi Umezawa <[hidden email]> wrote:
>SuperSwiki2のURLは個人ごとに動的に作られるものになりますので、他の人からは
>そのままではアクセスできません。ページ上部に出ている参照用のURLをお使いください。
>
>「二辺の長さから角度を求める」
>http://squeakland.jp/seaside/SBSuperSwiki/86c4a74e-70e9-4320-8de4-af398c3a480b
>
>と思います。

がーん。それはそうか、Seasideですもんね。
すみません、お手間を取らせました。

関係ないですが、高橋さんの「二項分布」は面白いですね。
http://squeakland.jp/seaside/SBSuperSwiki/58a6a553-a35d-4a57-8a1f-7c46bcdfa35d

>#SuperSwiki2ですが、速くもスペイン語版の翻訳ファイルを投稿してくれた方がいます。
>#アグレッシブに開発していきますので、皆さんご意見をお聞かせください。

すごい。イベリコ豚が待ってますよ。

 //abee
--
阿部 和広  EMAIL [hidden email]
Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 2968] Re: スクリプトの中で三角関数を利用する方法

大道 裕
In reply to this post by 八木則茂
大道です。

このMLにはつい最近参加したのですが、コミュニティ色が非常に
強くて、スクリプティングの質問など出来ないのかな?と思って
いたので、八木さんの質問は、うれしく思いました。

まさに「錚々たる」方々がこのスレッドに参加してくださり、びっ
くりしています。

ところで、Smalltalkでは式は左から右へ評価されるので、

self setCharacters: (a*a+(b*b)-(c*c)/(2*a*b)) arcCos asString

と書けるのですね。(acceptしたら、こう書き直されました。)

なお蛇足ですが、貼り付ける場合は Alt + V です、

八木則茂 wrote:

> ここまで教えていただけたら
> 後は私が理解するだけだと思います。

--
****************************************
   大道 裕

   かわうそ会ホームページ
http://suiren.mitaka.tokyo.jp/kawauso/

   三鷹市水泳連盟ホームページ
http://suiren.mitaka.tokyo.jp/
****************************************
Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 2971] 二項分布( Re: スクリプトの中で三角関数を利用する方法)

TAKAHASHI Makoto
In reply to this post by Kazuhiro ABE-3
高橋真です。

阿部さん、作品をご紹介いただきありがとうございます。

++ Kazuhiro ABEさんの
|『[Squeak-ja: 2967] Re: スクリプトの中で三角関数を利用する方法』
| (Sun, 21 May 2006 22:19:41 +0900)の件について
--
> 関係ないですが、高橋さんの「二項分布」は面白いですね。
> http://squeakland.jp/seaside/SBSuperSwiki/58a6a553-a35d-4a57-8a1f-7c46bcdfa35d

パチンコ玉等でする実験はよく知られていますが、スクイークで
作ってみようと思い立ち作成しました。
単純なのですが、思わず見入ってしまいます。こういうものが
簡単に作って試せるというのがスクイークの良さであると再認識
しました。