FC2ブログ

    スポンサーサイト

    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    VisualStudioからAzureへデプロイするときの自分的メモ

    自分用メモ

    続きを読む

    スポンサーサイト

    テーマ : ソフトウェア開発
    ジャンル : コンピュータ

    tag : Azure VisualStudio

    Windows.Forms フォーカスを取らないウィンドウの作成

    表題通り、.net frameworkのFormでフォーカスを取らない(マウスクリックなどが効かない)ウィンドウの作り方。

    twitterで方法をつぶやいたままだったので簡単に記事に残しておきます。


    方法は簡単で、CreateParamsをオーバーライドして、ExStyleにWS_EX_TRANSPARENT(0x20)を加えるだけです。
        Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
            Get
                Dim cp As CreateParams = MyBase.CreateParams
                cp.ExStyle = cp.ExStyle Or &H20
                Return cp
            End Get
        End Property
    
    フォームのプロパティのTransparentKeyに関係なく、ウィンドウに配置したコントロールやタイトルバーを含むくウィンドウ全体が触れなくなります。マウスクリック等のイベントはその後ろにあるウィンドウに対して送られます。

    部分的に透明にして長方形でないウィンドウを作るような目的の場合はTransparentKeyを指定します。また、WS_EX_TRANSPARENTを指定しただけだと透過はしないので、透明部分を作ったり、半透明にしたい場合はTransparentKeyやOpacityなどと組み合わせる必要があります。

    TopMostをTrueにしてもフォーカスを取らないので、マウス付近に情報を表示する場合などに使えます。EasyRulerでは最大化したウィンドウ全体を透明にしてパースの補助線を描画する使い方をしています。

    テーマ : ソフトウェア開発
    ジャンル : コンピュータ

    tag : Tips .net franework

    Kittens Game

    I want to thank the author of Kittens Game.
    このような面白いゲームを送り出して頂き、このゲームの作者の方には大変感謝します


    ここしばらくブラウザゲームのKittens Gameをプレイしていました。

    ゲームが作られた時期はだいぶ前ですが、名作とのことで興味を持って始めて見ました。ここにはプレイを進めるにあたってどのような流れでゲームが進んでいくかを大まかに攻略情報として記録しようと思います(ゲームやwikiの更新は2019年2月時点で継続しています)。

    ゲームをまだプレイしたことがなく、すべてを自分のプレイで見ていきたいという方にはネタバレ的な記事になるのでこの先は見ないことをお勧めします。

    逆に、「この研究に必要な〇×という資源はいつになったら手に入るようになるのだろう・・・」と不安になりながら進めるのはあまり・・・という方には、大まかな指針となるかと思います。

    本記事は2018年11月ごろのバージョンでの情報になります。また、メインで使っているのがAndroid版なので、表記がAndroid版に準じます。ごく一部違うところがあるようなので注意してください(Shatter TC ←→Combustion TCなど・・・)。

    [更新記録]
    2019/02/18 プレイログ追記、これで更新を終えようと思います。
    2019/02/15 プレイログ追記、Dark Novaの説明少し追記
    2019/02/12 プレイログ追記
    2019/02/08 プレイログ追記
    2019/02/05 プレイログ追記
    2019/02/02 10.Transcendの加速 / Appendix A.コスト感覚早見表追記
    2019/01/28 9.Entanglement Station / Appendix A.コスト感覚早見表

    続きを読む

    tag : Kittens Game 攻略

    視心と90度視円錐を基準に透視図法の消失点の位置を求める手順

    ツイッターで3点透視図の消失点の位置を求める手順を質問され,本を見て思い出したりしたので忘れる前に記事にしておこうと思います.

    本記事では視心と90度の視円錐を基準にして消失点の位置を求める手順を説明します.

    参考文献:パース!マンガでわかる遠近法(マール社)

    一点透視図
    二点透視図
    三点透視図

    前提知識

    以下では「視心(透視図のまんなか)」と「視円錐」が何であるかを知っていないと記事の内容を理解するのは難しいかもしれません.
    toushizuVP01.jpg

    極端な広角または望遠設定でない場合はキャンパスは40度~60度程度の視円錐の範囲で設定することになるので,90度の視円錐とキャンパスとの関係を比較すると以下のようになります.作図で消失点を求めるにはかなり大きな机が必要になることがわかります.
    toushizuVP02.jpg



    一点透視図
    一点透視では視心が消失点の位置になります.
    toushizuVP1-1.jpg



    二点透視図
    まず最初の消失点は任意の場所に設定できます(この消失点をVP1とします).
    toushizuVP2-1.jpg

    次にVP1から視心に向かって直線を引きます.この直線が地平線になります.
    toushizuVP2-2.jpg

    次に視心を起点として,地平線に直角に直線を引きます(上でも下でもどちらでもOK).
    toushizuVP2-3.jpg

    さらにVP1から先ほど引いた直線と視円錐の交点(Gとします)に向かって直線を引きます.
    toushizuVP2-4.jpg

    最後にGを起点として先ほど引いた直線に直角に,地平線に向かって直線を引きます.この直線と地平線との交点がもう一方の消失点になります.
    toushizuVP2-5.jpg

    二点透視図の場合,二つの消失点の位置している視円錐の角度の和が180になる(たとえばVP1が100度の位置ならVP2
    は80度の位置)ので,作図しなくても大雑把に位置がわかってしまいます.



    三点透視図
    3点透視図の消失点VP1,VP2,,VP3の位置ですが,最初の手順は二点透視と同じ手順を踏みます.

    最初の消失点は二点透視図と同様に任意の位置に設定できます.
    toushizuVP3-1.jpg

    二点透視図のときと同じ要領で以下のように作図します
    1)VP1から視心へ直線を引く
    2)視心を起点にしてこの直線と直角に直線を引く(視円錐との交点をGとする)
    3)VP1からGに向かって直線を引く
    4)Gを起点にこの直線と直角に直線を引く
    toushizuVP3-2.jpg

    次に二点透視図ではもう一方の消失点の位置だった場所(直線1と直線3の交点)に直線1と直角な直線(直線5)を引きます.3点透視図の残りの消失点VP2とVP3はこの直線上に存在することになります.
    toushizuVP3-3.jpg

    直線5上の任意の位置に二番目の消失点VP2を設定し,VP2から視心に向かって直線(直線6)を引きます.
    toushizuVP3-4.jpg

    最後にVP1を通りかつ先ほどの直線6に直角な直線(直線7)を引きます.この直線と直線5との交点が三つ目の消失点VP3になります.
    toushizuVP3-5.jpg

    さすがに3点透視図の作図は複雑ですね.

    3点透視図の作図は,三つの消失点を結んでできる三角形と視心との関係(視心が三角形の垂心の位置にある)を使っています.この性質を利用することで,三つの消失点から視心の位置を求めたりすることも可能です.
    toushizuVP03.jpg

    tag : 透視図法 消失点

    EasyRuler更新 - 視円錐の表示とロックメニューのショートカット実装の更新

    前回の更新からだいぶ間が空いてしまいました…

    今回の更新は視円錐の表示とメニューの深いところにある機能へのショートカットに関する更新です.

    ・視円錐の詳細表示機能
    通常表示では視円錐は10度から開始して20度刻みで視円錐を表示しますが,詳細表示として10度単位で視円錐を表示する機能を追加しました.メニューは視点を左クリックで表示されるメニュー内にあります.
    er141207_01.jpg

    表示は以下のようになります.たいていの場合は通常表示で大丈夫ですが,大きく拡大する場合に必要に応じて詳細表示を使用してください.
    er141207_02.jpg

    ・ロック機能へのショートカット
    移動・回転・消失点のロック機能は,オブジェクトを右クリックして表示されるメニュー内にありますが,メニューの深いところまでたどらないとON/OFFの切り替えができませんでした.場合によっては多用する機能ですので今まで煩わしいところがあったかと思います.
    er141207_03.jpg

    今回,メイン画面に黄色いショートカットボタンを配置し,このボタンをクリックすることで各ロックを制御できるようにしました.上から移動・回転・消失点について各軸のロックON/OFFを切り替えることができます.
    er141207_04.jpg

    ・魚眼レンズ表示での視円錐表示範囲の拡大
    魚眼表示での視円錐を180度ギリギリまで表示するようにしました.魚眼では通常より広い範囲でも作図が破綻しにくいので,広い範囲での視円錐を頼りに作業を行うことができるようになると思います.ちなみに,魚眼レンズ表示の際に一番外側に表示される黄色い円は180度の視円錐に相当する,作図の限界点になります.透視図においてこの点より外側に映像が映ることはありません.
    er141207_05.jpg


    今回の更新のうち,ショートカットと魚眼レンズでの視円錐については,EasyRulerを利用していただいている方からのご提案による機能追加になります.貴重なご意見を頂きありがとうございます.ショートカット機能についてはご意見を頂いてからリリースするまで大変間が空いてしまい申し訳ありません.

    今後も何かありましたらお気軽にご意見いただければと思います.

    テーマ : ソフトウェア開発
    ジャンル : コンピュータ

    tag : EasyRuler ツール パースペクティブ

    プロフィール

    eikun

    Author:eikun
    なかなかやるきがでない人です

    えいくんち

    twitter

    pixiv

    最新記事
    最新コメント
    最新トラックバック
    月別アーカイブ
    カテゴリ
    検索フォーム
    RSSリンクの表示
    リンク
    ブロとも申請フォーム

    この人とブロともになる

    QRコード
    QR
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。