月曜日, 8月 24, 2020

TCDW6678 
人間は意外と不自然でも気が付かない

牛のような犬のようなエジプトの猫のようなエイリアンは素のままでバレない? いやいや、人間は意外とソレが不自然でも気が付かないです。
本日は、バニラヨーグルトの日だそうです。

日曜日, 8月 23, 2020

[NEXMAG]
「フォト」で写真や動画の管理・編集

4月20日に公開されていたことに気が付きませんでした。パソコン工房NEXMAG(ネクスマグ)さんにてWindows 10標準アプリ「フォト」の記事を執筆させて頂きました。今後もオンライン原稿などは随時告知させて頂きます。

Windows 10標準アプリ「フォト」で写真や動画の管理・編集をしよう

今までの記事
Adobe CaptureとAdobe Photoshopで木版画風データを作る

Windows 10 3D Builderの使い方

Word文書のレイアウト術

Adobe Animate CCでアニメーションを作る

初心者でも安心。
音符が読めなくても楽曲作りができる「Studio One」解説

Adobe Creative Cloudライブラリーでクリエイティブ作業を効率化

3D初心者のためのAdobe Dimension CC講座

Photoshopで写真の傾きを簡単補正する方法


TCDW6677 
象さんではない泣き虫系エイリアン

象さんではない泣き虫系エイリアン。角度と色で色々イメージが変わってきますね。まっ、変わらないといろいろ色々と困りますれど・・・。
本日は、湖池屋ポテトチップスの日だそうです。

土曜日, 8月 22, 2020

Visual Studio Basic_09 
円の面積と円周の計算&色々な数式

プログラムを作るというのは数式を組み合わせるといっても過言ではありません。入力したデータをどのように加工して求める値を導くか?という流れですね。今回は円の面積と円周を入力した直径から計算するプログラムです。

VS Basicを起動したら[新しいプロジェクトの作成]にて新規プログラム作成モードに入ります。最初にTextBox1つ、Button3つ、Label6つを配置します。

プロパティーにて文字やパーツのサイズを調整して上の様なレイアウトとしました。次にソースです。その前に数式の確認です。

円の面積は[半径×半径×π(パイ)]
円周は[直径×π(パイ)

今回は入力するデータを直径値としました。IllustratorなどのDraw系ソフトで円を数値描画する際は直径値で処理しているので、それを考慮しました。よって考え方としては・・・

円の面積は数値変換したTextBox1の値(直径値)を半分にして半径とし[半径×半径×π(パイ)]の公式に当てはめる。
円の円周は数値変換したTextBox1の値(直径値)を[直径×π(パイ)]の公式に当てはめる。

なお、計算結果は小数第2桁までとすることにしました。そのため、一旦計算結果を変数に入れ、変数を小数第2桁表示させるという流れにします。桁指定はFormatを利用します。

Format(変数, "0.00")

ということで[計算]ボタンをダブルクリックして以下のソースを記述します。

「-----------------」は区切り線なので記述の必要はありません。
青字は自動入力部分で修正の必要はありません。
黒字が入力部分です。
赤字はコメント文なので記述の必要はありません。

-----------------
 Public Class Form1
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        ' CircleAria, CircumferenceをDecimal変数宣言
        ' TextBox1に円の直径を入力。
        ' 円の面積は数値変換したTextBox1を半分にして半径とし、
        ' 半径掛ける半径にPI(3.14)を掛けてCircleAriaに入れる。
        ' CircleAriaの値をLabel4.Textに小数第2桁までの値で表示
        ' 円の円周は数値変換したTextBox1にPI(3.14)を掛けてCircumferenceに入れる。
        ' Circumferenceの値をLabel5.Textに小数第2桁までの値で表示。
        Dim CircleAria, Circumference As Decimal
        CircleAria = (Val(TextBox1.Text) /2) *(Val(TextBox1.Text) /2) * Math.PI
        Circumference = Val(TextBox1.Text)*Math.PI
        Label4.Text = Format(CircleAria, "0.00")
        Label5.Text = Format(Circumference, "0.00")
    End Sub
End Class
-----------------

続けて[C]ボタンをダブルクリックして以下のソースを記述します。
TextBox1のリセット(クリア)
-----------------
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        TextBox1.ResetText()
    End Sub
-----------------

更に[AC]ボタンをダブルクリックして以下のソースを記述します。
TextBox1、Label4、Label5のリセット(クリア)
-----------------
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        TextBox1.ResetText()
        Label4.ResetText()
        Label5.ResetText()
    End Sub
-----------------

最後にパレットの[Form1]をプロパティーの[font>Text]をForm1から[Circle calculator ver1.0]に変更します。

記述が済んだらデバッグを実行して問題が出なければ完成です。

最終的なソースは以下の様になりました。

-----------------
 Public Class Form1
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        ' CircleAria, CircumferenceをDecimal変数宣言
        ' TextBox1に円の直径を入力。
        ' 円の面積は数値変換したTextBox1を半分にして半径とし、
        ' 半径掛ける半径にPI(3.14)を掛けてCircleAriaに入れる。
        ' CircleAriaの値をLabel4.Textに小数第2桁までの値で表示
        ' 円の円周は数値変換したTextBox1にPI(3.14)を掛けてCircumferenceに入れる。
        ' Circumferenceの値をLabel5.Textに小数第2桁までの値で表示。
        Dim CircleAria, Circumference As Decimal
        CircleAria = (Val(TextBox1.Text) /2) *(Val(TextBox1.Text) /2) * Math.PI
        Circumference = Val(TextBox1.Text)*Math.PI
        Label4.Text = Format(CircleAria, "0.00")
        Label5.Text = Format(Circumference, "0.00")
    End Sub
-----------------
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        TextBox1.ResetText()
    End Sub
-----------------
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        TextBox1.ResetText()
        Label4.ResetText()
        Label5.ResetText()
    End Sub
End Class
-----------------

その他の数式としては以下が覚えておくと便利な数式です。

関数関数名関数の意味
絶対値Math.Abs(x)xの絶対値
余弦Math.Cos(x)xのcos値[radian]
指数Math.Exp(x)eのx乗の値
対数Math.Log(x)自然対数logの値
四捨五入Math.Round(x)xの小数点以下を四捨五入
切り上げMath.Ceiling(x) xの小数点以下を切り上げ
切り下げMath.Floor(x)xの小数点以下を切り下げ
正負符号 Math.Sign(x)xの値ら正・負・零を1,-1,0で与える
正弦Math.Sin(x)xのsin値[radian]
平方根Math.Sqrt(x)√xの値、xは正(x>0)
正接Math.Tan(x)xのtan値[radian]
※[radian]xはラジアン(角度の単位)で与える

Visual Studio Basic 2019

TCDW6676 
安定の魚頭らしきエイリアン

安定(何が?)の魚頭らしきエイリアン。あっ、金魚鉢を被せるべきだった・・・で、あとの祭り。
本日は、ラブラブサンドの日だそうです。

金曜日, 8月 21, 2020

ZBrush2021のダイナミックシステムが面白い

ZBrush無印2021の新機能で一番最初に苦になったのが、ダイナミックシステム。つまり物理シミュレーションです。

基本的な処理はとても簡単です。元にナルオブジェとは別のサブツールに厚みのない平面を作成します。なぉ、ここでサブツールの前後関係は特に問題ないのですが、この平面を選択している状態とします。

次にダイナミックタグをクリックし、上の様な設定で[シミュレーションを実行]をクリックします。特に[衝突体積]や[フロア衝突]にチェックを入れておきます。

あとは処理を止めたい状態で[シミュレーションを実行]をクリックして処理を止めます。

ポイントはどこで止めるかですね。

で、気になったのは尖っている部分がある形状を利用したときです。

ちなみに。ここで間違って形状の方を選択して[シミュレーションを実行]をクリックしてしまいました。これだと形状の方が崩れ始めてしまいます。

処理を戻し、尖った部分の雨形状に対して処理を行うと穴が開いてしまいました。回避する方法が良くわからないので、調べて見ます。もしかしたら無理なのかも。

なお、実際のモデリングでは上の様にベースパーツの一部分を選択して別パーツを作成し、それを処理するとシャツを自然に着ているような感じに成ります。

かなり適当なデータで処理していますが、色々と応用が効きそうなツールだと思います。

ZBrush 2021

TCDW6675 
鳥モドキに擬態している謎のエイリアン

鳥モドキに擬態している謎のエイリアン・・・で今頃になって擬態前も作るべきであったと反省。暑いと脳内は細かい事を無視します。
本日は、おいしいバターの日だそうです。

木曜日, 8月 20, 2020

Visual Studio Basic_08 
簡易電卓と切り上げ切り捨て四捨五入

今回の電卓は、レイアウト設計のお復習いを兼ね、計算一発で加減乗除の結果が全て表示される電卓です。また、除算結果は切り上げ、切り捨て、四捨五入を選べるようにしました。

まず[TextBox]2つ、[Label]9つ、[Button]6つをレイアウトします。

最終的にそれぞれのパーツを上の用にリネイムします。[Label5]〜[Label8]はブランクです。なお、レイアウトにあたり、プロパティーでの必要最低限の機能を以下に整理しました。

[Label]は[配置>AutoSize]で[False]設定。パーツのサイズは[配置>Size]で調整。

パーツの背景色は[表示>BackColor]、パーツの枠設定は[表示>BackStyle]>
フォント指定は[Font]で、フォントサイズは[Font>Size]で調整。

パーツの表示文字は[Text]で、表示テキストの配置位置は[TextAlign]で調整。

デザインが完了したら[計算][C][↑][5/4][↓][AC]のボタンをそれぞれダブルクリックしてソースを記述します。

「-----------------」は区切り線なので記述の必要はありません。
青字は自動入力部分で修正の必要はありません。
黒字が入力部分です。
赤字はコメント文なので記述の必要はありません。

なお、切り上げ、四捨五入、切り下げ処理は以下の様になります。

切り上げ表示は[Math.Ceiling
TextBox1をTextBox2で除算した結果を切り上げ表示してLabel8に表示
Label8.Text = Math.Round(Val(TextBox1.Text) / Val(TextBox2.Text))

四捨五入表示は[Math.Round]
TextBox1をTextBox2で除算した結果を四捨五入表示してLabel8に表示
Label8.Text = Math.Round(Val(TextBox1.Text) / Val(TextBox2.Text))

切り下げ表示は[Math.Floor]
TextBox1をTextBox2で除算した結果を切り下げ表示してLabel8に表示
Label8.Text = Math.Floor(Val(TextBox1.Text) / Val(TextBox2.Text))

-----------------
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        '[計算ボタン]で Label5には加算結果、 Label 6には減算結果、
        ' Label7には乗算結果、 Label8には除算結果を表示
        Label5.Text = Val(TextBox1.Text) + Val(TextBox2.Text)
        Label6.Text = Val(TextBox1.Text) - Val(TextBox2.Text)
        Label7.Text = Val(TextBox1.Text) * Val(TextBox2.Text)
        Label8.Text = Val(TextBox1.Text) / Val(TextBox2.Text)
    End Sub
-----------------
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
         '[Cボタン]でTextBox1とTextBox2をクリア
        TextBox1.ResetText()
        TextBox2.ResetText()
    End Sub
-----------------
    Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
         '[ACボタン]でTextBox1とTextBox2、Label5〜Label8をクリア
        Label5.ResetText()
        Label6.ResetText()
        Label7.ResetText()
        Label8.ResetText()
        TextBox1.ResetText()
        TextBox2.ResetText()
    End Sub
-----------------
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        ' Label8の値を切り上げ表示
        Label8.Text = Math.Ceiling(Val(TextBox1.Text) / Val(TextBox2.Text))
    End Sub
-----------------
    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        ' Label8の値を四捨五入表示
        Label8.Text = Math.Round(Val(TextBox1.Text) / Val(TextBox2.Text))
    End Sub
-----------------
    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
        ' Label8の値を切り下げ表示
        Label8.Text = Math.Floor(Val(TextBox1.Text) / Val(TextBox2.Text))
    End Sub
End Class
-----------------

Visual Studio Basic 2019

TCDW6674 
なんとなく妖怪の入道系エイリアン

なんとなく妖怪の入道系エイリアン(なにソレ?)を作ってみました。いやいや、お饅頭系かもね。饅頭めちゃ怖い。
本日は、信州ワインブレッドの日だそうです。

水曜日, 8月 19, 2020

Visual Studio Basic_07 
ダブルクリックミスの対処方法

レイアウトの最中に、うっかりLabelやTextBoxのパーツをダブルクリックし、ソースに余計な記述ができてしまうことがあります。私もしょっちゅうやります。そんな場合の対処方法を整理してみました。

その前に、一度終了してから再起動してプログラミングの続きを行いたいときは、最初に表示される上の画面の左端の一覧から続きを行いたいプログラムを選択すればOKです。

本題に入ると、例えば絵小野様なレイアウトの最中にダブルクリックは[Button1]だけで良いのに、うっかり[Label1]をダブルクリックしてしまったとします。

そんなときは、上の上段の様にソース記述モードになりますが、中段のように不要な部分を選択して削除してしまえば問題ありません。残るのは1行目と最後の行だけです。

「-----------------」は区切り線なので記述の必要はありません。
青字は自動入力部分で修正の必要はありません。
黒字が入力部分です。

ダブルクリツクで表示されたソースコード
-----------------
Public Class Form1
    Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click
 
    End Sub
End Class
-----------------
表示されたソースコードのうち、1行目の[Public Class Form1]と最後の行の[End Class]以外(赤で表示した部分)を削除します。
-----------------
Public Class Form1
    Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click
 
    End Sub
End Class
-----------------
これでソースコードが以下の様になれば問題解決です。
-----------------
Public Class Form1
 
End Class
-----------------

それでは、既に[Button1]の処理を記述後に[Label2]間違ってダブルクリックしてしまったとします。

そんなときは、上の上段の様にソース記述モードになりますが、不要な部分を選択して削除してしまえば問題ありません。残るのは1行目と最後の行だけです。

ダブルクリックで表示されたソースコード
-----------------
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      Label1.Text = Val(TextBox1.Text) + Val(TextBox2.Text)
    End Sub
-----------------
    Private Sub Label2_Click(sender As Object, e As EventArgs) Handles Label2.Click
 
    End Sub
End Class
-----------------
表示されたソースコードのうち、1行目の[Public Class Form1]から最初の[End Sub]までと、一番最後の行の[End Class]以外(赤で表示した部分)を削除します。
-----------------
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      Label1.Text = Val(TextBox1.Text) + Val(TextBox2.Text)
    End Sub
-----------------
    Private Sub Label2_Click(sender As Object, e As EventArgs) Handles Label2.Click
 
    End Sub
End Class
-----------------
これでソースコードが以下の様になれば問題解決です。
-----------------
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      Label1.Text = Val(TextBox1.Text) + Val(TextBox2.Text)
    End Sub
End Class
-----------------
何処をクリックした科を整理すれば混乱は無いでしょう。

ところで[TextBox]のサイズは中に表示するフォントのサイズで調整しますが、

複数行表示したいような場合は[TextBox]右上にアル小さな三角形をクリックして表知れる項目の[MultiLine]にチェックを入れれば対応可能です。

上は[MultiLine]にチェックを入れた状態です。

Visual Studio Basic 2019