水曜日, 7月 31, 2024

Illustratorでの作図基本 04
 移動パレットを征すれば作図も楽し

Illustratorでの作図は移動パレットを征する〜ですね。チョット整理してみました。

上の様にA4サイズのファイルに40mm四方の四角を25個配置した状態で、左上の緑の円の位置に、右下の青の円の位置に移動させます。

四角は40mm四方なので、の位置は160mm下になります。そこで水平方向は0、垂直方向値を160mm(または40*4)と入力してTabキーを押した確認して[OK]をクリックします。移動距離と角度は自動的に計算されるので特に何もしなくて大丈夫です。

の位置は120mm上かつ80mm左になります。そこで水平方向は-80mm(または-40*2)、垂直方向値を-120mm(または-40*3)と入力してTabキーを押した確認して[OK]をクリックします。移動距離と角度は自動的に計算されるので特に何もしなくて大丈夫です。
Illustratorに限らず、PCの中では、右と下方向がプラスで、左と上方向がマイナスになります。

なを、移動パレットで処理前にプロパティーでオブジェクトの基点を中心に設定していることが重要です。
 
上は処理結果です。数回練習すればコツが掴めます。あと、電卓があると便利です。
ちなみに50mm移動なら「10mm+160h」でもOKです。

TCDW8115 
力尽きたセミを道路で沢山発見する

姿を見ることが無く力尽きたセミを道路で沢山発見するのですが・・・暑さのせいなのでしょうか? チョットしたホラーです。

火曜日, 7月 30, 2024

関数電卓事始め 01 
超ローカル環境で電卓遊び

以下のネタから勢い余っての連載です。検証時間がかなり必要なので、そんなに頻繁にはアップ出来ませんがゲーム感覚で続けてみたいと思います。利用するのは超ローカルで個人所有の4機種です。

※比較の電卓は、私物で仕様が同一ではないので、機能比較の内容ではありません。単なる備忘録です。なお、マニュアルは最低限の説明だけなので、私が理解した範囲での記述です。効率の良い手順を発見したら修正します。

A)CASIO fx375 ES A 2019/08発売(左側)2024/07購入
B)Canon F-502G 2009/01発売(右側)購2016/08購入
発売時期が10年もズレているので機能や操作性が大きく変化しています。持ち歩いたりはしませんが、プログラムなどの検証には手放せません。

C)iPhone 12mini 2020/11発売2021/01購入
一般的にスマートフォンなら、Androidも概ね同じだと思います。

D)Canon HS-1210TS 2004/11発売/2009/02購入
20年前の製品ですが、いわゆる一般的な電卓です。一応メモリー機能と平方根キーがあります。ちなみに大きい電卓は今となってはあまり利用しなくなりました。

他も色々ありましたが、壊れたり、寄付したりで、今は2台ほど残ってはいますが、いわゆるチープ系電卓なので外しました。

TCDW8114 
劣化版譲り合いコントの様で笑うしかありませんでし

某所のエレベータのB1で待っていたら、ドアが開いて全員がB1で降りる雰囲気だったのに、お互いが譲り合いを始めて・・・なんとドアが閉まりかけてしまう罰ゲームに遭遇。ダチョウ倶楽部の劣化版譲り合いコントの様で笑うしかありませんでした。

月曜日, 7月 29, 2024

Visual Studio Basic_36 
入力値を素因数分解してみる

素因数分解にチャレンジです。

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

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

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

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

Public Class Form1

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

        ' TextBox1から入力された数値を取得

        Dim input = TextBox1.Text.Trim


        ' 入力が空白または数値でない場合はエラーメッセージを表示

        If String.IsNullOrWhiteSpace(input) OrElse Not IsNumeric(input) Then

            MessageBox.Show("整数を入力してください。", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error)

            Return

        End If


        ' 入力された数値を整数に変換

        Dim number = Integer.Parse(input)


        ' 素因数分解を行う

        Dim result = Factorize(number)


        ' 結果をLabel1に表示

        Label1.Text = $"素因数分解の結果: {result}"

    End Sub

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

    ' 素因数分解する関数

    Private Function Factorize(number As Integer) As String

        Dim result As String = ""


        ' 2で割れるだけ割る

        While number Mod 2 = 0

            result &= "2 "

            number = number / 2

        End While


        ' 3以上の奇数で割り続ける

        Dim factor As Integer = 3

        While factor * factor <= number

            If number Mod factor = 0 Then

                result &= $"{factor} "

                number = number / factor

            Else

                factor += 2 ' 奇数で試す

            End If

        End While


        ' 最後に残った数が素数である

        If number > 2 Then

            result &= $"{number}"

        End If


        Return result.Trim()

    End Function

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

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

        TextBox1.ResetText()

        Label1.ResetText()

    End Sub

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

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

        End

    End Sub

End Class

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


起動したら、分解したい数値を入力します。

計算ボタンをクリックすると結果が表示されます。

素因数分解できない数値の場合はそのまま返します。

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

TCDW8113 
絶対にフリーランスは確定まで行き着けない

某サービスをお試しで利用しようとしたら個人情報をやたら要求してくるだけでなく、絶対にフリーランスは確定まで行き着けないと気がつきゲームオーバー。いまどき何考えているのだろうか?

日曜日, 7月 28, 2024

WordでExcelデータをラベル印刷

Excelの住所録を元にWordでラベル印刷データを作成してみます。

用意したダミーデータです。
<都道府県> <住所> <集合住宅>・・・と
データを分けておくことをお薦めします。

Wordで新規書類を作成し・・・

[差し込み文書]>[差し込み印刷の開始]をクリック

表示されたメニューから[差し込み印刷ウィザード]をクリック

[文書の種類を選択]>[ラベル]>[次へ:ひな形の選択]

[ひな形の選択]>[文書レイアウトの変更]>[ラベルオプション]をクリック


表示された一覧から用意しているラベルを指定します。

上のアラートが出ますが、そのまま[OK]をクリックします。

テンプレートが配置されたら、右側の差し込み印刷メニューの「次へ:宛名の選択」をクリックし、「既存のリストを使用」にチェックを入れた上で、「参照」をクリックします。

ここで、Excelのデータを選択します。

テーブル選択画面が開くので、エクセルに複数のシートがある場合は、どのシートのデータを引用するかを選択します。

今回は「Sheet1」だけなので、「Sheet1$」を選択し、OKをクリックします。


名簿データが出力されたら各項目のデータに問題がなければ[OK]をクリック。

名簿データを取り込むことができたので、差し込み印刷メニューの「次へ:ラベルの配置」をクリック

今回はエクセルの1列目に、それぞれ項目を設けているので、「差し込みフィールドの挿入」をクリックし、[郵便番号][都道府県][住所1][住所2][氏名]の順で[挿入]をクリックしていきます。


入力後に通常のテキスト処理で・・・
<郵便番号><都道府県><住所1><住所2><氏名>
〒 <郵便番号>
<都道府県>
<住所1><住所2>
<氏名> さま
に編集します。
 
編集後に右端の[複数ラベルに反映]をクリックして、全てのラベルに反映させます。

続けて右下の[次へ:ラベルのプレビュー表示]をクリックすると実際のデータをプレビュー確認できます。最終的に右揃えでスペースを入れて調整してみました。必要に応じてフォントやサイズ、色などを調整し、後はプリントするだけです。

TCDW8112 
日傘あるから必要ない?的な流れ

Baby Alien 013
ジイさんじゃない(^o^)
そう言えば、まだサングラスを今年は一度も利用していません。日傘あるから必要ない?的な流れですね。

土曜日, 7月 27, 2024

Illustratorでの作図基本 03
 ドロップシャドウはアピアランスで

ドロップシャドウはアピアランスで設定し、グラフィックスタイルに登録がスマートです。

ドロップシャドウを設定したい文字(※)を入力し選択されている状態で・・・

※文字ではなく、図形でも問題ありません。

アピアランスパレットを開きます。文字に対してアピアランスパレットを開くと上左のような状態ですが、オプションで[新規塗りを追加]を選び・・・

上図左から2つ目の状態にアピアランスパレットが変わります。
上図左端 > アピアランスパレットを開いた直後
上図左から2つ目 >[新規塗りを追加]を選んだ直度
上図右から2つ目 >塗りと線の関係を逆に変更
    ここでオプションにて新たに[新規塗りを追加]を選ぶ
上図右端 > 上の塗りを白(文字色)、下の塗りを黒(影色)に設定

下の塗りを黒(影色)を選択し、[新規効果を追加]>[パスの変形]>[変形]と進み・・・

水平と垂直の移動値を調整します。

最後に[新規効果を追加]>[ぼかし]>[ぼかし(ガウス)]などで影のボケを調整すれば完成です。

完成後はグラフィックスタイルに登録しておけば、他の文字あるいはオブジェクトに対して同じ設定を与えることが出来ます。

TCDW8111 
必ず「マスクを外してください」と言われる

某所の入り口でモニター付きの体温チェッカーで体温確認するのですが、マスクをしているときは問題ないのですが、何故かマスクをしていないと必ず「マスクを外してください」と言われるので困惑。私の顔はどう認識されているのだろうか?

金曜日, 7月 26, 2024

HTMLとCSSの様々な表現 13 
HTMLだけで電気分解式などを作る時の注意点

今回はHTMLだけの処理です。HTMLだけで塩化ナトリウムの電気分解式を例に注意点を整理しました。

上付き文字 <sup>a</sup>
下付き文字 <sub>a</sub>

文字サイズは自動的に調整されます。更に小さくしたいときは・・・

上付き文字 <sup><font size="1">a</font></sup>
下付き文字 <sub><font size="1">a</font></sub>

という処理もありです。

事の発端は汎用性を持たせるために以下の記述をしたのですが、上図のように謎の半角?スペースが入ってしまい大混乱。

<body bgcolor="palegoldenrod">
<h4>
塩化ナトリウム(食塩)
N
<sub>a</sub>
<sup>+</sup>
+Cl
<sup>−</sup>
=N
<sub>a</sub>
Cl
</h4>
</body>

取りあえずⒶの+とイコールの前後にスペースを入れて体裁を整えました。

<body bgcolor="palegoldenrod">
<h4>
塩化ナトリウム(食塩)&ensp;
N
<sub>a</sub>
<sup>+</sup>
&nbsp;+&nbsp;Cl
<sup></sup>
&nbsp;=&nbsp;N
<sub>a</sub>
Cl
</h4>
</body>

ここで10日ほど放置して、気休めに一行で記述したところ、謎のスペースがなくなりました。

<body bgcolor="palegoldenrod">
<h4>
塩化ナトリウム(食塩)
N<sub>a</sub><sup>+</sup>+Cl<sup></sup>=N<sub>a</sub>Cl
</h4>
</body>

ここで、改めてⒶの+とイコールの前後にスペースを入れて体裁を整えました。コレで完成です。

<body bgcolor="palegoldenrod">
<h4>
塩化ナトリウム(食塩)&ensp;
N<sub>a</sub><sup>+</sup>&nbsp;+&nbsp;Cl<sup></sup>&nbsp;=&nbsp;N<sub>a</sub>Cl
</h4>
</body>

TCDW8110 
張り付くように立っている中年男性を発見

地下鉄のホームに設置されている巨大なエアコンに向かって張り付くように立っている中年男性を発見。気分は小学生なのかな〜。外は恐ろしい暑さですからね(>_<)

木曜日, 7月 25, 2024

JavaScriptでAI遊び 20 
選択オブジェクトを回転コピー

Illustratorで選択したオブジェクトを回転コピーさせます。

/* circle_copy.jsx */
// Illustratorのドキュメントを取得
var doc = app.activeDocument;

// 選択中のオブジェクトを取得
var selection = doc.selection;

// 選択があるか確認
if (selection.length > 0) {
// 最初の選択オブジェクトを取得
var selectedObject = selection[0];

// コピーを作成する回数
var numCopies = 12;

// 30度ごとに回転して120%拡大してコピーを作成
for (var i = 1; i <= numCopies; i++) {
// 回転角度(30度ずつ)
var rotationAngle = i * 30;

// コピーを作成
var copiedObject = selectedObject.duplicate();
// 120%拡大
copiedObject.resize(100, 100, true, true, true, true, 100);

// 回転と位置調整
copiedObject.rotate(rotationAngle, true, true, true, true, Transformation.BOTTOMLEFT);
}
} else {
alert("Please select an object.");
}
/* circle_copy.jsx */

回転のp中心点は上図のようにオブジェクトの左下になります。

デフォルトでは30度で12個コピーさせます。回転方向は時計回りです。

五角形の処理結果です。

自由形状で・・・

処理したら・・・

任意の色を塗りつぶし、ベースのオブジェクト以外を全て[乗算]とした結果です。ショートカット登録すると、チョット便利です。