金曜日, 5月 16, 2025

JavaScriptでAI遊び 48 
指定半径の三角形からN角形を描画(改訂版)

だいぶ前にアップした「指定半径の三角形からN角形を描画」の改訂版です。
ページの中心に指定した多角形までを全て描画することにしました。それぞれレイヤーで分かれているので後処理も楽です。


function drawPolygons() {
if (app.documents.length === 0) {
alert("ドキュメントを開いてください。");
return;
}

var doc = app.activeDocument;
var artboard =
doc.artboards[doc.artboards.getActiveArtboardIndex()];
var artboardBounds = artboard.artboardRect;
// アートボードの中央座標
var centerX = (artboardBounds[0] + artboardBounds[2]) / 2;
var centerY = (artboardBounds[1] + artboardBounds[3]) / 2;

// ユーザーに最大のN角形の辺数を入力させる(最小3)
var maxSides = parseInt(prompt
("最大N角形の辺の数を入力してください(3以上):", "6"), 10);
if (isNaN(maxSides) || maxSides < 3) {
alert("正しい値を入力してください(3以上)。");
return;
}

// ユーザーに半径を入力させる
var radius = parseFloat(prompt
("多角形の半径(mm)を入力してください:", "50"));
if (isNaN(radius) || radius <= 0) {
alert("正しい半径を入力してください。");
return;
}

// mmをIllustratorの単位に変換
var unitConversion = 2.83465; // mm -> pt
radius *= unitConversion;

for (var sides = 3; sides <= maxSides; sides++) {
var angleStep = (2 * Math.PI) / sides;
var pathPoints = [];

for (var i = 0; i < sides; i++) {
// 上を基準に回転
var angle = -Math.PI / 2 + angleStep * i;
var x = centerX + radius * Math.cos(angle);
var y = centerY + radius * Math.sin(angle);
pathPoints.push([x, y]);
}

// パスの作成
var polygon = doc.pathItems.add();
// 始点と終点を結ぶ
polygon.setEntirePath(pathPoints.concat([pathPoints[0]]));
polygon.closed = true;
polygon.stroked = true;
polygon.filled = false;
}

alert("三角形から " + maxSides + " 角形まで描画しました!");
}

drawPolygons();

実行したらN角形までの数を入力後に半径値を入力すれば・・・

ページの中央に描画されます。

TCDW8403
チョット疲れたときは蜂蜜とシナモンを追加します

コーヒーには砂糖を入れないのですが、牛乳は入れます。最近は1:1ぐらいですかね。ただ、チョット疲れたときは蜂蜜とシナモンを追加します。

木曜日, 5月 15, 2025

Photoshopに配置するaiファイルに要注意

Photoshopに配置するaiファイルに要注意。普段はIllustratorのデータをPhotoshopに配置したいときはコピー&ペーストでやっているので気がつきませんでしたが・・・

配置(埋め込み&リンク)をすると、配置を確定する前であればサイズ調整可能ですが・・・

確定後は出来なくなります。こんな仕様だった?と焦ってしまいましたが、少し古いバージョンでも同様でした。

ただし、SVGyPDFそして2020形式以外の形式で書き出したファイルであれば問題ないことを確認しました。これはバグ臭いですね?

整理するとこんな感じです。

TCDW8402
持ち合わせがなくて、ズルズルとして

Baby Alien 085
おでこが日よけ君(^o^)
そう言えば昨日は今年初の日傘デビューでした。もっと前から使いたかったのですが、持ち歩いていなかったので、ズルズルとしてしまいました。

水曜日, 5月 14, 2025

Let's start JavaScript 67 
HTML上で温度単位相互変換ツール

HTML上で温度単位相互変換ツールを作ってみました。
計算式は・・・
摂氏から華氏=(華氏-32)×5÷9
華氏から摂氏=(摂氏×9÷5)+32
摂氏からケルビン=摂氏+273.15
華氏からケルビン=(華氏-32)×5÷9+273.15
ケルビンから摂氏=ケルビン-273.15
ケルビンから華氏=(ケルビン-273.5)×9÷5+32

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0">
<title>温度単位 相互変換ツール</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
margin: 50px;
background-color: black;
color: white;
}
input {
padding: 8px;
font-size: 16px;
width: 120px;
text-align: center;
}
.container {
display: flex;
justify-content: center;
gap: 20px;
align-items: center;
margin-bottom: 10px;
}
label {
font-size: 18px;
font-weight: bold;
}
</style>
</head>
<body>
<h2>摂氏 ⇄ 華氏 ⇄ ケルビン 変換ツール</h2>
<div class="container">
<label>摂  氏 (°C): </label>
<input type="number" id="celsius" oninput="convertFromCelsius()" placeholder="0">
</div>

<div class="container">
<label>華  氏 (°F): </label>
<input type="number" id="fahrenheit" oninput=
"convertFromFahrenheit()" placeholder="32">
</div>

<div class="container">
<label>ケルビン (K ): </label>
<input type="number" id="kelvin" oninput=
"convertFromKelvin()" placeholder="273.15">
</div>

<script>
// 摂氏を求める
function convertFromCelsius() {
let celsius = parseFloat(document.
getElementById("celsius").value);
if (!isNaN(celsius)) {
document.getElementById("fahrenheit").
value = ((celsius * 9/5) + 32).toFixed(2);
document.getElementById("kelvin").
value = (celsius + 273.15).toFixed(2);
} else {
clearFields();
}
}

// 華氏を求める
function convertFromFahrenheit() {
let fahrenheit = parseFloat(document.
getElementById("fahrenheit").value);
if (!isNaN(fahrenheit)) {
let celsius = (fahrenheit - 32) * 5/9;
document.getElementById("celsius").
value = celsius.toFixed(2);
document.getElementById("kelvin").
value = (celsius + 273.15).toFixed(2);
} else {
clearFields();
}
}

// ケルビンを求める
function convertFromKelvin() {
let kelvin = parseFloat(document.
getElementById("kelvin").value);
if (!isNaN(kelvin)) {
let celsius = kelvin - 273.15;
document.getElementById("celsius").
value = celsius.toFixed(2);
document.getElementById("fahrenheit").
value = ((celsius * 9/5) + 32).toFixed(2);
} else {
clearFields();
}
}

function clearFields() {
document.getElementById("fahrenheit").value = "";
document.getElementById("celsius").value = "";
document.getElementById("kelvin").value = "";
}
</script>
</body>
</html>

表示直後の状態

摂氏を入力すると、摂氏に対応している華氏とケルビンを表示

摂氏を入力すると、摂氏に対応している摂氏とケルビンを表示

ケルビンを入力すると、ケルビンに対応している摂氏と華氏を表示

TCDW8401
心臓に良くない納税関連通知書が届きますね。

数日前に自動車税の通知書が届いたので、これから色々と罰ゲームの罰金じゃなくて、心臓に良くない納税関連通知書が届きますね。

火曜日, 5月 13, 2025

Excel VBA 45 
Excelで選択したセルの和暦を西暦に変換

Excelで選択したセルの和暦を西暦に変換します。手動でメニューから変更するのが面倒なので作りました。

Sub ConvertToSeireki()
Dim cell As Range
Dim seireki As Date
' 選択範囲の各セルを処理
For Each cell In Selection
If IsDate(cell.Value) Then
' 西暦に変換
seireki = CDate(cell.Value)
cell.Value = Format(seireki, "yyyy年m月d日")
End If
Next cell
End Sub

"yyyy年m月d日"の部分を変更することで処理結果を調整出来ます。

和暦を選択して実行・・・

処理結果。

TCDW8400
先週の木曜あたりから喉の調子が悪くて・・・

先週の木曜あたりから喉の調子が悪くて土曜日に主治医に診て貰ったら、チョット炎症しているというのでトラネキサム酸を処方して貰ったのですが、アレは美白効果があるとか。市販の喉の薬には概ね含まれているそうです。

月曜日, 5月 12, 2025

Illustratorでの作図基本 18 
正方形から回転とブレンドで花を作成

正方形から回転とブレンドで花を作成します。

正方形を作成し手90度回転し・・・

ダイレクト選択ツールで両端のコーナーを最大限内側に寄せてレンズ形状にします。

そのなな45度回転コピーを3回くりかえして上図の様にし・・・

全体をグループ化します。

続けて40%の縮小コピーを作成し、カラーリングを任意調整します。

そのままブレンドツールをステップ数3で実行し、

拡張してからグループ解除します。

ここで、上図のようにと飛び飛びの選択をおこない、22.5度回転させます。

これで花のイメージが完成します。

少しアクセントを付けただけでも、いい感じのイメージになります。

TCDW8399
後ろからどう考えても70キロ以上で飛ばしてくる車に仰天

朝の通勤通学時間帯に中学校の近くを歩いていたら、突然後ろからどう考えても70キロ以上で飛ばしてくる車に仰天。アタオカにも程があります。危険運転や飲酒運転は永久免停でイイと思います。