日曜日, 8月 31, 2025

JavaScriptでAI遊び 64 
Illustratorでカラー設定の明度を反転

特に目的は無いのですが、色相・彩度・明度の反転実験の明度版です。
CMYKでもRGBでも使えます。

function invertBrightness() {
var doc = app.activeDocument;
var selection = doc.selection;

if (selection.length === 0) {
alert("オブジェクトを選択してください。");
return;
}

for (var i = 0; i < selection.length; i++) {
var obj = selection[i];

if (obj.typename === "PathItem" && obj.filled) {
var color = obj.fillColor;

if (color.typename === "RGBColor") {
// RGBの明度を反転
color.red = 255 - color.red;
color.green = 255 - color.green;
color.blue = 255 - color.blue;

} else if (color.typename === "CMYKColor") {
// CMYKの明度を反転(K値の反転)
color.black = 100 - color.black;
}

obj.fillColor = color;
}
}
}

invertBrightness();

左からCMYKで・・・
ベースチャート、カラー反転、カラー反転を2回実行

左からCMYKで・・・
ベースチャート、明度反転、明度反転を2回実行

左からRGBで・・・
ベースチャート、カラー反転、カラー反転を2回実行

左からRGBで・・・
ベースチャート、明度反転、明度反転を2回実行

以下も参考にしてください

TCDW8510 
いつになくキャラクタ作成を暴走しています(^o^)

Baby Alien 139
両脇のおへそ系(^o^)
8月は今日で終わりですが、今年の夏休み企画は7/26〜9/7としました。いつになくキャラクタ作成を暴走しています(^o^)

土曜日, 8月 30, 2025

Excel VBA 51 
単純処理でもデータ量が多い場合もVBA

単純でも大量処理の場合はVBAで対処した方が賢明です。

データの全体です。
データはA1:L31まで入力されていて
C2:L31までの30名の10科目のテスト結果です。


作成するデータは・・・
M列に合計点
N列に平均点
O列に合否
85点以上はA合格、75点以上はB合格、65点以上はB合格。それ以外は不合格。

を入力する簡単な計算です。サンプルは30名分ですが、もし1000名文分と言った場合はフィルよりも今回のVBAを¥のセル指定を変更して活用すれば一気に処理出来ます。

Sub 計算式を入力し右揃え()
Dim ws As Worksheet
Dim i As Integer
' アクティブシートを設定(または特定のシートを指定)
Set ws = ActiveSheet
' 2行目から31行目まで繰り返し処理
For i = 2 To 31
' M列(合計)
ws.Cells(i, 13).Formula = _
"=SUM(C" & i & ":L" & i & ")"
ws.Cells(i, 13).HorizontalAlignment = xlRight ' 右揃え
' N列(平均)
ws.Cells(i, 14).Formula = _
"=AVERAGE(C" & i & ":L" & i & ")"
ws.Cells(i, 14).HorizontalAlignment = xlRight ' 右揃え
' O列(評価)
ws.Cells(i, 15).Formula = "=IF(N" & i _
& ">=85,""A合格"",IF(N" & i & ">=75,""B合格"",IF(N" & i _
& ">=65,""C合格"",""不合格"")))"
ws.Cells(i, 15).HorizontalAlignment = xlRight ' 右揃え
Next i
' メッセージ表示(オプション)
MsgBox "数式を31行目まで入力し、右揃えにしました!", _
vbInformation
End Sub

というコトで上は処理結果です。

TCDW8509 
何度も口から出すのって、よく考えると不衛生

Baby Alien 138
擬態できない芋虫系(^o^)
昔から感じていたのですが、変わり玉という飴・・・色が変わったかの確認で、何度も口から出すのって、よく考えると不衛生ですよね〜(^o^)

金曜日, 8月 29, 2025

Illustratorの3D機能で地球を作成(3)

質問がありましたので、2023/10/24にアップした「Illustratorの3D機能で地球を作成」の保続です。

前回作成した地球にクモを追加します。

地球を作成した半円よりも若干大きい半円で球体を作成します。

次に適当なブラシで雲モドキを作成します。

作成後に若干ぼかしてから色を白に変更して・・・

シンボル登録します。

作成した若干大きめの球体にシンボルを配置し[構造体を表示しない]にチェックを入れます。
コレで雲のようなイメージを造ることが出来ますが・・・

若干不透明度を下げて背景を黒にした方が良いですね。

TCDW8508 
似合っている人を見たことがありません

Baby Alien 137
シンプルが一番ホラーかも(^o^)
たまに街なかで袴パンツのニキを見かけますが、似合っている人を見たことがありません。日本人には似合わないと思うのですが、そんな私もバギースーツにロンドンブーツという黒歴史があるので、人のこと言えません(^o^)汗

木曜日, 8月 28, 2025

Let's start JavaScript 81 
HTML上でランダムな斜線を描画

HTML上でランダムな色と太さの斜線を描画します。

<!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 {
text-align: center;
font-family: Arial, sans-serif;
background-color: Black;
}
canvas {
border: 2px solid black;
margin-top: 10px;
background: white;
border: 1px solid white;
}
</style>
</head>
<body>

<h3>
    <font color="white">Random diagonal line drawing</font>
    </h3>
<label for="lineCount">線の本数:</label>
<input type="number" id="lineCount" value="10" min="1">
<button onclick="drawRandomLines()">描画</button>

<br>
<canvas id="canvas" width="500" height="500"></canvas>
<!-- canvas の width や height を変更すれば、
描画エリアを大きく or 小さくできます。 -->

<script>
function drawRandomLines() {
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
const numLines = parseInt(document.
                getElementById("lineCount").value, 10);

if (isNaN(numLines) || numLines < 1) {
alert("正しい本数を入力してください!");
return;
}

// キャンバスをクリア
// ctx.globalAlpha = 0.5; を追加すると、
            // 半透明の線を描画できます。
ctx.clearRect(0, 0, canvas.width, canvas.height);

for (let i = 0; i < numLines; i++) {
// ランダムな開始点と終了点
let x1 = randomRange(0, canvas.width);
let y1 = randomRange(0, canvas.height);
let x2 = randomRange(0, canvas.width);
let y2 = randomRange(0, canvas.height);

// ランダムな線の太さ
let lineWidth = randomRange(1, 15);
// randomRange(1, 15); の範囲を変更すると、
// 線の太さを太く or 細く 調整可能。

// ランダムなRGBカラー
let color = `rgb(${randomRange(0, 255)},
${randomRange(0, 255)}, ${randomRange(0, 255)})`;

// 線を描画
ctx.beginPath();
ctx.moveTo(x1, y1);
ctx.lineTo(x2, y2);
ctx.lineWidth = lineWidth;
ctx.strokeStyle = color;
ctx.stroke();
}
}

// min~maxの範囲でランダムな数を生成
function randomRange(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
</script>
</body>
</html>

実行北後の画面です。数値(デフォルトは10)を入力して[描画]をクリックすれば・・・

枠内に表示されます。

100で実行した結果。

TCDW8507 
設定していないメーカーって、ある意味で猛者

Baby Alien 136
ベンチ系(^o^)
20年ほど前、マーケットで小学生が母親に「この商品ヤバイよ!」と言って母親がビックリしながら理由を聞いたら・・・。「だってホームページが書かれていない」・・・。商売をしていて今も記載していない、あるいは設定していないメーカーって、ある意味で猛者なのかも。

水曜日, 8月 27, 2025

Illustratorでの作図基本 23 
ドーナッツ作成は3Dでアクセント

質問がありましたので・・・
Illustratorでドーナツ作成は3D(クラッシック)の回転体がお薦めです。

ベースとなる円を作成し・・・

角度などを設定して[表面:陰影(艶有り)]を実行します。

処理結果の選択して・・・
control C(command C)でコピーしてから
control 2(command 2)でロック
続けて
control F(command F)で同じ位置にペースとします。
ペースとしたデータを[オブジェクト]>[アピアランスを分割]し、
続けて[ウィンドウ]>[パスファインダー]>[合体]を実行。
必要に応じて[オブジェクト]>[パス]>[単純化]を実行します。
ここで上図のようにパスデータを作成。
両方を選択して[ウィンドウ]>[パスファインダー]>[分割]を実行し、余分なパーツを削除して任意の色で塗り潰します。
そのまま[ウィンドウ]>[透明]にて[スクリーン]に設定。
または[ウィンドウ]>[透明]にて[乗算]に設定。
と説明したのですが、それよりも以下の処理の方がベストかも・・・。

ベースのドーナッツの表面を[表面:陰影(艶なし)]に設定します。
処理結果の選択して・・・
control C(command C)でコピーしてから
control 2(command 2)でロック
続けて
control F(command F)で同じ位置にペースとします。
ペーストしたドーナツの色を任意調整します。ここで、ペースとしたドーナッツの表面を[表面:陰影(艶有り)]に設定します。
続けて上の様なパスデータを作成(前記の逆)

両方を選択して[オブジェクト]>[クリッピングマスク]>[作成]を実行して完成です。コレで生地は艶無し、チョコは艶有りになります。

なお、3Dの階調のブレンド数は以下を参考にしてください。

TCDW8506 
触れてはいけないネタですね

Baby Alien 135
ダンゴムシ系(^o^)
昔、とあるパーティー会場で見かけた芸能人・・・身長は私よりも高いはずなのに、普通の革靴だった私の方が高かった。触れてはいけないネタですね(^o^)汗

火曜日, 8月 26, 2025

小型のアイロン台は廃棄HDDで決まり

愛用している小型アイロンの台に苦労していましたが、廃棄したHDD本体がベストでした。

1989年に父が購入したアイロン。2回ほどケーブルを交換しています。

廃棄用のHDDは中身以外は保存しているのですが、これがとてもベストマッチでした。

中身を廃棄したケースに載せるだけです。下に適当な板があれば完璧です。

TCDW8505 
楽して儲ける意識を捨てないと痛い目に遭いますよ〜

Baby Alien 134
Hooray man(^o^)
最近は動画制作やAI系の情報商材PRがネットに増えていますね。100%胡散臭いとは言いませんが、自己責任ですから口うるさく言うことはしません。ただ、楽して儲ける意識を捨てないと痛い目に遭いますよ〜。

月曜日, 8月 25, 2025

Blender Study Notes 60 
頂点とミラー編集での凹み処理

頂点とミラー編集での凹み処理を整理してみました。

ここでは立方体をベースに顔の基本形状を作成して見ます。

[モディファイアー]>[モディファイアーを追加]>[生成]>[サブディビジョンサーフェス]にて[ビューポートのレベル数]を[2]として適用してから・・・

[Auto Mirror]を設定してから頂点を選択し・・・

Blender Study Notes 45 シンメトリー処理はAutoMirrorで決まりですね 2025/01/14

右クリックで表示されるパレットから[頂点をベベル]にて・・・

頂点を面に変更します。

生成された面を選択し[面を差し込む]を2度実行し・・・

最後に生成された面を移動ツールで押し込みます。

ここで、モディファイアー]>[モディファイアーを追加]>[生成]>[サブディビジョンサーフェス]にて[ビューポートのレベル数]を[2]として凹みを確認します。必要に応じて調整します。コレで目の位置のベースが完成です。

[サブディビジョンサーフェス]を[シンプル]に切り換え、次に口を作成します。上図のような位置の面を選択し・・・

[ベベル]を実行し・・・

続けてもう一度[ベベル]を実行し・・・

一番小さい面を選択して押し込みます。

[サブディビジョンサーフェス]を[カトマルクラーク]に切り換えてイメージを確認します。コレで顔の基本形状が得られます。

Blender 4.5.0