月曜日, 8月 12, 2024

Visual Studio Basic_37 
不透明度の色を何枚重ねたら100%になるか?

数日前に整理した、N%の不透明度色を何枚重ねたら100%になるか?を考えてみました。Photoshopなどで使えるネタだけど、現実感ないですね(^o^)


レイアウトは上の様にしました。
L=Label
TB=TextBox
B=Button

ソースの「-----------------」は区切り線なので記述の必要はありません。

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

------------------

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim opacity As Double

        Dim layers As Integer

        Dim currentTransparency As Double


        ' TextBox1から不透明度を取得

        If Double.TryParse(TextBox1.Text, opacity) AndAlso opacity > 0 AndAlso opacity <= 100 Then

            ' 初期化

            layers = 0

            currentTransparency = 1.0


            ' 不透明度N%を透明度に変換

            Dim transparency = 1 - (opacity / 100)


            ' 99%以上不透明になるまでの層の計算

            Do While currentTransparency > 0.01

                currentTransparency *= transparency

                layers += 1

            Loop


            ' 結果をLabel4に表示

            Label4.Text = layers.ToString()

        Else

            ' 無効な入力の場合のエラーメッセージ

            Label7.Text = "0より大きく100以下の数値を入力してください"

        End If

    End Sub

------------------

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

        TextBox1.ResetText()

        Label4.ResetText()

        Label7.ResetText()

    End Sub

------------------

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

        End

    End Sub

End Class

------------------

ということで、起動したら不透明度を入力し・・・

[計算]で必要な枚数が表示されます。

0〜100以外の数値を有力するとエラーメッセージが出ます。

Visdual Studio 2022のBasicで作成しています。
TintColor_100.zip
クリックするといきなりダウンロードが始まります。
実際のプログラム完成日は2024年8月2日です。
Windows版です。