水曜日, 2月 05, 2025
火曜日, 2月 04, 2025
Let's start JavaScript 55
HTML上で指定した画像とそのネガを表示
HTML上で指定した画像とそのネガを表示します。
<!-- index.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 {
font-family: Arial, sans-serif;
text-align: center;
margin: 20px;
}
.container {
display: flex;
justify-content: center;
gap: 20px;
margin-top: 20px;
}
.image-box {
display: flex;
flex-direction: column;
align-items: center;
}
img {
max-width: 300px;
height: auto;
border: 2px solid #ccc;
border-radius: 10px;
}
.negative img {
filter: invert(1);
}
.caption {
margin-top: 10px;
font-size: 14px;
color: #333;
}
.hidden {
display: none;
}
</style>
</head>
<body>
<h2>画像とネガ画像を表示</h2>
<p>画像ファイルを選択してください:</p>
<input type="file" id="fileInput" accept="image/*">
<!--accept="image/*" で画像ファイルのみに制限-->
<div id="imageContainer" class="container hidden">
<div class="image-box">
<img id="originalImage" alt="オリジナル画像">
<div class="caption">オリジナル画像</div>
</div>
<div class="image-box negative">
<img id="negativeImage" alt="ネガ画像">
<div class="caption">ネガ画像</div>
</div>
</div>
<script>
document.getElementById("fileInput").
addEventListener("change", function(event) {
const file = event.target.files[0];
if (file) {
// FileReader を使用して選択したファイルを読み込む
const reader = new FileReader();
reader.onload = function(e) {
const imageSrc = e.target.result;
// オリジナル画像を表示
const originalImage =
document.getElementById("originalImage");
originalImage.src = imageSrc;
// ネガ画像を表示
// ネガ画像の表示は .negative クラスで制御
const negativeImage = document.
getElementById("negativeImage");
negativeImage.src = imageSrc;
// コンテナを表示
// 初期状態では画像表示エリアを非表示 (.hidden) にし、
// 画像が読み込まれた後に表示
document.getElementById("imageContainer").
classList.remove("hidden");
};
// readAsDataURL を使い、画像をデータURLとして取得
reader.readAsDataURL(file);
}
});
</script>
</body>
</html>
<!-- index.html -->
実行したら[ファイルを表示]で処理ファイルを指定すれば・・・
一気に両方を表示します。
ラベル:
HTML,
JavaScript
月曜日, 2月 03, 2025
Excel VBA 39
Excelで選択したセルを指定文字列で埋める
今回も何の意味も無い処理ですが・・・
Excelで選択したセルをランダムカラーで塗ってみます。
Sub FillCellsWithSpecifiedText()
Dim rng As Range
Dim cell As Range
Dim inputText As String
' ユーザーに入力を求める
inputText = _
InputBox("セルに入力する文字を指定してください:", "指定文字の入力")
' キャンセルボタンが押された場合は終了
If inputText = "" And StrPtr(inputText) = 0 Then Exit Sub
' 選択範囲を取得
On Error Resume Next
Set rng = Selection
On Error GoTo 0
' 選択範囲がない場合は終了
If rng Is Nothing Then
MsgBox "セル範囲を選択してください。", vbExclamation
Exit Sub
End If
' 範囲内の各セルに指定文字を入力
Application.ScreenUpdating = False
For Each cell In rng
cell.Value = inputText
Next cell
Application.ScreenUpdating = True
MsgBox "選択したセルを指定した文字で埋めました。", vbInformation
End Sub
処理したいエリアを選択して実行すれば・・・
入力したい文字列の入力パレットが出るので入力すれば・・・
こんな感じになります。具体的な用途は出席管理で、取りあえず全出席してから欠席処理をするといった使い方はありますね。
ラベル:
Excel,
VBA,
Visual Basic
日曜日, 2月 02, 2025
Illustratorでの色変更はオブジェクトを再配色
質問がありましたので・・・
Illustratorでの色変更は[オブジェクトを再配色]が一番簡単です。
変更したい部分を選択し・・・
[編集]>[カラーを編集]>[オブジェクトを再配色]を表示されるパレットの一番大きな円を摘まんで・・・
動かすだけです。ちなみに、ハーモニーカラーをリンクしている必要があります。
詳細オプションをクリックして・・・
[編集]で処理し手もOKです。
コツは色分けしての選択です。
ラベル:
Illustrator
TCDW8300
「武士のありかた」は「智・仁・勇」
葉隠に書かれていた「武士のありかた」は「智・仁・勇」。「智」とは「人と相談する」、「仁」とは「人のためになることをする」、「勇」とは「歯を食いしばること」の三徳兼備。何処かの政治家にぶつけたい「ありかた」ですね。
ラベル:
illustration,
Photoshop,
TCDW
土曜日, 2月 01, 2025
Blender Study Notes 49
地球儀作成はマッピングデータがキモ
Blenderで地球を作成するのは、UVマッピングではなく画像テクスチャがとても簡単です。
用意するのはマッピングデータ。上は自作の画像で公開していないのでここではモザイク処理しています。
球体を作成し、スムース設定としてから・・・
画像テクスチャを設定して用意した画像を読み込むだけです。
具体的な設定方法は以下を参考にしてください。
これで余計なことを考えずに綺麗に配置されます。
もちろんシームレスでつなぎ目は分かりません(※)。
Blender 4.3.1 macOS
ラベル:
3D,
Blender,
Blender Study Notes
TCDW8299
自宅でもティーバックで出来そうですね
東京銭湯によると、2月6日は「風呂の日」なので、東京都内の銭湯では、2月6日(木)に「ルイボスティー湯」を実施するそうです。銭湯代550円が大きな壁ですね。考えてみれば自宅でもティーバックで出来そうですね。他県ではどうなのだろう?
ラベル:
illustration,
Photoshop,
TCDW
金曜日, 1月 31, 2025
Excel VBA 38
Excelで選択したセルをランダムカラーで塗る
何の意味も無い処理ですが・・・
Excelで選択したセルをランダムカラーで塗ってみます。
Sub FillCellsWithRandomColors()
Dim rng As Range
Dim cell As Range
Dim randomColor As Long
' 選択範囲を取得
On Error Resume Next
Set rng = Selection
On Error GoTo 0
' 選択範囲がない場合は終了
If rng Is Nothing Then
MsgBox "セル範囲を選択してください。", vbExclamation
Exit Sub
End If
' 範囲内の各セルをランダムな色で塗る
Application.ScreenUpdating = False
For Each cell In rng
' ランダムなRGB値の生成
randomColor = RGB(Int((256) * Rnd), Int((256) * _
Rnd), Int((256) * Rnd))
' セルの塗りつぶし
cell.Interior.Color = randomColor
Next cell
' 画面の更新を一時停止し、処理速度を向上
Application.ScreenUpdating = True
MsgBox "選択したセルをランダムな色で塗りつぶしました。", _
vbInformation
End Sub
処理したいエリアを選択して実行すれば・・・
ラベル:
Excel,
VBA,
Visual Basic
TCDW8298
最近は野菜が高騰していて悲しいです
Baby Alien 059
ぎょ魚ギョ〜(^o^)
ラベル:
3D,
Baby Alien,
modo,
TCDW
木曜日, 1月 30, 2025
modoローポリモデリング 52
レイアウトが壊れたら環境設定のリセットで乗り切ります
昨年のmodo開発終了で、modoのTipsは取りやめていましたがユーザーはまだマシン環境があるかぎり使い続けられるので、ゆったりと再開することにしました。
というコトで、パレットなどのレイアウトが無意識に触ってしまったショートカットなどで崩れてしまった場合は,[システム]>[設定をリセット]で初期設定の戻すことが出来ます。ただし、本当に全ての設定がリセットされることを理解して対処しましょう。
Windows版の場合・・・
macOS版の場合・・・
ラベル:
3D,
modo,
modo_Low_Polygon
水曜日, 1月 29, 2025
Let's start JavaScript 54
HTML上で図形の面積を計算
HTML上で正円、長方形、三角形の面積を計算してみます。
<!-- index.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 {
font-family: Arial, sans-serif;
text-align: center;
margin: 20px;
color: #000;
background-color: #f5f5f5;
}
.container {
margin: 20px auto;
max-width: 300px;
text-align: left;
}
label {
display: block;
margin: 10px 0 5px;
}
input[type="number"] {
width: 100%;
padding: 5px;
margin-bottom: 15px;
font-size: 1rem;
}
button {
display: block;
width: 100%;
padding: 10px;
font-size: 1rem;
background-color: #3498db;
color: #fff;
border: none;
border-radius: 5px;
cursor: pointer;
}
button:hover {
background-color: #2980b9;
}
.result {
margin-top: 20px;
font-size: 1.2rem;
color: #2c3e50;
text-align: center;
}
</style>
</head>
<body>
<h2>図形の面積を計算</h2>
<div class="container">
<label for="shape">図形を選択:</label>
<select id="shape" onchange="updateInputs()">
<option value="circle">正 円</option>
<option value="rectangle">長方形</option>
<option value="triangle">三角形</option>
</select>
<div id="inputs">
<!-- 入力フィールドがここに動的に生成されます -->
</div>
<button onclick="calculateArea()">面積を計算</button>
<div class="result" id="result"></div>
</div>
<script>
function updateInputs() {
const shape = document.getElementById("shape").value;
const inputs = document.getElementById("inputs");
// 入力フィールドをリセット
inputs.innerHTML = "";
// 正円に応じた入力フィールドを生成
if (shape === "circle") {
inputs.innerHTML = `
<label for="radius">半径 (r):</label>
<input type="number" id="radius"
placeholder="半径を入力" min="0" required>
`;
// 長方形に応じた入力フィールドを生成
} else if (shape === "rectangle") {
inputs.innerHTML = `
<label for="width">幅 (w):</label>
<input type="number" id="width"
placeholder="幅を入力" min="0" required>
<label for="height">高さ (h):</label>
<input type="number" id="height"
placeholder="高さを入力" min="0" required>
`;
// 三角形に応じた入力フィールドを生成
} else if (shape === "triangle") {
inputs.innerHTML = `
<label for="base">底辺 (b):</label>
<input type="number" id="base"
placeholder="底辺を入力" min="0" required>
<label for="height">高さ (h):</label>
<input type="number" id="height"
placeholder="高さを入力" min="0" required>
`;
}
}
function calculateArea() {
const shape = document.getElementById("shape").value;
let area = 0;
//正円の処理(半径×半径×3.14)
if (shape === "circle") {
const radius = document.getElementById("radius").value;
if (radius) {
area = Math.PI * Math.pow(radius, 2);
}
//長方形の処理(高さ×幅)
} else if (shape === "rectangle") {
const width = document.getElementById("width").value;
const height = document.getElementById("height").value;
if (width && height) {
area = width * height;
}
//三角形の処理(底辺×高さ÷2)
} else if (shape === "triangle") {
const base = document.getElementById("base").value;
const height = document.getElementById("height").value;
if (base && height) {
area = (base * height) / 2;
}
}
//結果表示
const result = document.getElementById("result");
if (area > 0) {
result.textContent = `面積: ${area.toFixed(2)} 平方単位`;
} else {
result.textContent = "正しい値を入力してください。";
}
}
// 初期状態で円の入力フィールドを表示
window.onload = updateInputs;
</script>
</body>
</html>
<!-- index.html -->
実行直後の画面です。
半径を入力して[面積を計算]で正円の面積が出ます。
[長方形]を選択して幅と高さを入力し[面積を計算]で長方形の面積が出ます。
[三角形]を選択して底辺と高さを入力し[面積を計算]で三角形の面積が出ます。
ラベル:
HTML,
JavaScript
TCDW8296
バトルになるのは避けたいですからね
私はあまり登場しない某SNSで、とあるツールが使えないという書き込みが知人から上がり、賛同のコメントを書き込もうとしたら、電話が入って作業を中断していたら、「アレはとても良いツールだ〜!」というコメントが入っていたので、私はコメントを控えました。バトルになるのは避けたいですからね。
ラベル:
illustration,
Photoshop,
TCDW
火曜日, 1月 28, 2025
JavaScriptでAI遊び 33
四角形でスパイラル配置作成(RGB版)
四角形でスパイラル配置を作成してみました。(RGB版)
// Illustrator RGBモードで四角形スパイラルを描画するスクリプト
(function() {
if (app.documents.length === 0) {
alert("ドキュメントを開いてください。");
return;
}
var doc = app.activeDocument;
// RGBカラーモードを確認
if (doc.documentColorSpace !== DocumentColorSpace.RGB) {
alert("ドキュメントをRGBモードに設定してください。");
return;
}
// ドキュメントのサイズを取得
var artboard = doc.artboards[0];
var artboardRect = artboard.artboardRect;
var centerX = (artboardRect[2] + artboardRect[0]) / 2;
var centerY = (artboardRect[3] + artboardRect[1]) / 2;
// スパイラルの設定
var numSquares = 50; // 四角形の数
var initialSize = 5; // 最初の四角形のサイズ
var sizeIncrement = 2; // サイズの増加量
var angleIncrement = 15; // 回転角度の増加量(度)
var distanceIncrement = 5; // 距離の増加量
for (var i = 0; i < numSquares; i++) {
var size = initialSize + i * sizeIncrement;
var angle = i * angleIncrement;
var distance = i * distanceIncrement;
// 角度をラジアンに変換し四角形の中心座標を計算
var radian = (angle * Math.PI) / 180;
var x = centerX + Math.cos(radian) * distance;
var y = centerY + Math.sin(radian) * distance;
// 四角形を作成
var rect = doc.pathItems.rectangle(y, x, size, size);
// ランダムなRGB色を設定
var red = Math.random() * 255;
var green = Math.random() * 255;
var blue = Math.random() * 255;
rect.fillColor = new RGBColor();
rect.fillColor.red = red;
rect.fillColor.green = green;
rect.fillColor.blue = blue;
rect.stroked = false;
// 回転
rect.rotate(angle);
}
alert("スパイラルの描画が完了しました!");
})();
実行直後の結果です。
サイズなどは指定できないのですが、その辺りは今後の課題ですね。
ラベル:
Illustrator,
JavaScript
月曜日, 1月 27, 2025
Excel VBA 37
Excelで選択したセルが塗り潰しなら太字
Excelで選択したセルのなかで、セルが塗り潰されているばあい、そのセルの文字を太字にします。
Sub MakeBoldForColoredCells()
Dim rng As Range
Dim cell As Range
' 選択範囲を取得
On Error Resume Next
Set rng = Selection
On Error GoTo 0
' 選択範囲がない場合は終了
If rng Is Nothing Then
MsgBox "選択範囲を指定してください。", vbExclamation
Exit Sub
End If
' 範囲内の各セルを処理
' Application.ScreenUpdating = Falseで
' 画面更新を停止し、処理を高速化
Application.ScreenUpdating = False
For Each cell In rng
' セルが塗りつぶしされており、色が設定されている場合、
' cell.Interior.Color を使用して、セルの塗りつぶし色を判定。
' 塗りつぶしが「透明(色なし)」または xlNone の場合はスキップ。
' 16777215 は標準の白色(RGB値: 255, 255, 255)を指す。
' 背景が白色の場合も無視するよう条件を追加。
' 塗りつぶしが色付きの場合のみ、cell.Font.Bold = True を設定
If cell.Interior.Color <> _
16777215 And cell.Interior.Color <> xlNone Then
cell.Font.Bold = True ' 文字をボールドに変更
End If
Next cell
Application.ScreenUpdating = True
MsgBox "色付きのセルの文字をボールドに変更しました。", _
vbInformation
End Sub
白も塗り潰しになってしまうことに気がつかず苦労しました。セルを選択し・・・
実行した結果です。
元に戻すときは、以下で対処してください。
Sub MakeTextNormal()
Dim rng As Range
Dim cell As Range
' 選択範囲を取得
On Error Resume Next
Set rng = Selection
On Error GoTo 0
' 選択範囲がない場合は終了
If rng Is Nothing Then
MsgBox "選択範囲を指定してください。", vbExclamation
Exit Sub
End If
' 範囲内の各セルを処理
Application.ScreenUpdating = False
For Each cell In rng
If Not IsEmpty(cell) Then
cell.Font.Bold = False ' ボールドをオフ
cell.Font.Italic = False ' イタリックをオフ
cell.Font.Underline = xlUnderlineStyleNone ' 下線をオフ
End If
Next cell
Application.ScreenUpdating = True
MsgBox "選択範囲の文字をノーマルに変更しました。", vbInformation
End Sub
ラベル:
Excel,
VBA,
Visual Basic
TCDW8294
IKEAで気になったら速攻で撮影ですね
Baby Alien 058
こんな枕が欲しいかも(^o^)
ラベル:
3D,
Baby Alien,
modo,
TCDW
日曜日, 1月 26, 2025
Blender Study Notes 48
慣れれば簡単なカメラ設定とレンダリング処理
Blenderのカメラ設定は食わず嫌いでした。と言うのとで整理してみました。
ライティングなどを設定したら、メインオブジェクトを選択し、Shift Aで表示されるメニューから[カメラ]を選びます。
するとオブジェクトに食い込んだような位置にカメラが設定されるので・・・
取りあえず前面に移動させます。
ココでカメラビューに切り替えると、だいたい上の様に歪んだ状態になります。
ここでモデリングモードに戻り、カメラを選択してレンズの[シフトX][シフトY]を調整して・・・
カメラの設定を調整します。
真上から野画面で大まかに調整するとイイです。
後はフォーマットでレンダリングのピクセル数を設定し・・・
レンダリングするだけです。
Blender 4.3.1 macOS
ラベル:
3D,
Blender,
Blender Study Notes
登録:
投稿 (Atom)