日曜日, 7月 20, 2025

カメラレンズとフランジバックの関係

質問がありましたので・・・

メーカーの異なるレンズで撮影するのは?・・・ミラーレス一眼レフカメラのフランジバックが短いことで可能な処理です。

フランジバック(Flange Back)とは
レンズマウントの取り付け面から撮像素子(センサー)までの距離のこと。
この距離が、レンズ設計やマウントアダプターの可否に大きく関わります。

概ねミラーのある一眼レフ用のレンズであればミラーレス一眼レフにアダプターで装着して利用することが可能です。

主なレンズのフランジバックです。青字は所有しているレンズです。

DSLR(Digital Single Lens Reflex Camera/デジタル一眼レフカメラ)
SLR(Single Lens Reflex/フィルムカメラ)

ミラーのある一眼レフ用と、ミラーレス一眼レフのフランジバックは概ね上の様な値です。ミラーレス一眼レフ間でも、イレギュラーではありますが、私が知る限りではM4/3のレンズをEマウントに装着するアダプター(※)はあります。

※このアダプターに限り、M4/3のレンズはマニュアルレンズ専用と解釈した方がいいです。M4/3用のオートフォーカスレンズでマニュアルフォーカスも利用出来るモノであっても使い物になりません。

上は2025/06/20現在所有しているアダプター

TCDW8468
オワコンなのに辞めない公人が多いですね

しかし・・・誰がどう考えてもオワコンなのに辞めない公人が多いですね〜。そのツケは庶民に重くのしかかるのに・・・。

土曜日, 7月 19, 2025

Illustratorでドーナッツ風シンボル作成

質問がありましたので・・・
基本図形だけでドーナッツ風のシンボル作成の手順を整理してみました。
まず円を作成します。
続けて円のコピーを上の様に配置し、2つの円の描画モードを乗算に変更します。

次に、2つの円を選択して45度回転コピーします。
上は処理直後の状態です。
そのままcommand D(※)を2回実行して上の状態を得ます。
そのまま[パスファインダー]>[分割]を実行し・・・
ダイレクト選択ツールで中心のパーツを全て削除します。これでドーナッツ形状のベースが得られます。

ここで、全体を選択し[効果]>[ぼかし]>[ぼかし(ガウズ)]にて適宜設定します。
上は処理結果です。

続けて[オブジェクト]>[ラスタライズ]でビットマップ化します。
上は処理結果です。

次に取りあえず[画像トレース]>[6色変換]を実行。[6色変換]は仮の設定です。処理結果に合わせて処理後に微修正します。

上は処理結果です。チョット細かすぎたので・・・

[4色変換]の債設定・・・

いい感じになったので・・・
[拡張]でパス化すれば完了です。

TCDW8467
いやいや、面白がっている場合ではないですね

選挙になると小学生でも理解できるほどアタオカな立候補者と、彼らを支持する大人が炙り出されて面白い。いやいや、面白がっている場合ではないですね。

金曜日, 7月 18, 2025

手作りレンズプロジェクト 02 
意外と面白いピンホールレンズ

今回は酢年前から試行錯誤(穴のサイズで混乱)していたピンホールレンズです。


M42ボディーカメラ用のボディーキャップに穴を開けて裏からピンホールを空けた色画用紙を貼り付けます。

黒の色画用紙に針で穴を開けます。穴といっても、軽くつつく感じでOKです。

フードは黒のペッとボトルキャップを加工して瞬間接着剤で接続しています。


M42マウントレンズをSONY Eマウントカメラに接続する薄手のマウントアダプターにKAZNEX 50mm F167を接続した状態です。

撮影に関しては ISO6400で手持ち撮影が可能でした。なお、謎の黒いゴミ?が映り込んでいて、原因を究明中ですが、通常のレンズでは発生しないので、ピンホールに原因がありそうです。

SONY α NEX-6
KAZNEX 50mm F167

SONY α NEX-6
KAZNEX 50mm F167

ということで・・・
KAZNEX 50mm F167
の完成です。
なお、画角と絞り値は以下の計算で割り出しました。

■ピンホールのF値の計算式:
F = f / d

F:F値(絞り値)
f:ピンホールから撮像面までの距離(=焦点距離)
d:ピンホールの直径

■ピンホールレンズの画角
例:ピンホールの直径:0.3mm
焦点距離(撮像面までの距離):50mm
F = 50 / 0.3 = 約167

よって・・・
KAZNEX 50mm F167
です。

modoローポリモデリング 60 
部分的にポリゴン密度を変更

均一なポリゴン状態でのモデリングに拘る必要はありません。もちろん均一な方が便利なのですが、リトポロジー処理をすれば問題ないです。ただっし、リトポロジー処理は根気が必要です。取りあえずローポリでのモデリングなら部分的にポリゴン密度を調整ッしても大きな問題にはなりません。

立方体を作成し、[D]キーで選択したジオメトリを細分割します。続けて帳面部分の4つのポリゴンを選択し・・・

[D]キーで選択したジオメトリを細分割します。Tabキーでサブディバイドすると若干形状が崩れますが、誤差と思って無視します。

続けて目の位置のエッジをベベル書影をおこないポリゴンを生成します。

そのままポリゴンを選択して[B]キーにてベベルを二重に設定し、奥に引き込みます。

口の部分も目の処理と同様にポリゴンを作成して[B]キーにてベベルを二重に設定し、奥に引き込みます。

Tabキーでサブディバイドすればこんな感じになりますが、目の周りがちょっち気になるので・・・

Tabキーでサブディバイドを外し、目の余分なエッジを選択&削除します。

これで良い感じになります。

TCDW8466
色々想像していたら既に販売されていました

Baby Alien 101
唐突に金平糖が食べたい(^o^)
そういえば、洋風の金平糖はあるのだろうか? もともとポルトガルから伝わったので、チョコ味とか(^o^)〜で、色々想像していたら既に販売されていました。試したい(^o^)

木曜日, 7月 17, 2025

Let's start JavaScript 76 
HTML上でOSカラーパレット色を16進表示

似たようなネタがありましたが、ローカルな必要に迫られて作りました。HTML上でOSのカラーパレットで指定した色と、その補色を16進表示します。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport"
        content="width=device-width, initial-scale=1.0">
<title>RGB HSL色とその補色を16進表示</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
margin: 10px;
background-color: black;
color: white;
}
.color-box {
width: 400px;
height: 100px;
border: 1px solid #000;
display: inline-block;
vertical-align: middle;
margin-left: 0px;
}
</style>
</head>
<body>
<h3>RGB HSL色とその補色を16進表示</h3>
<input type="color" id="colorPicker" value="#ff0000">
<br><br>
<p>選択色: <span id="colorValue">#ff0000</span>
<div id="colorPreview" class="color-box"
            style="background-color: #ff0000;"></div>
</p>
<p>補 色: <span id="complementaryValue">#00ffff</span>
<div id="complementaryPreview" class="color-box"
            style="background-color: #00ffff;"></div>
</p>

<script>
const colorPicker =
            document.getElementById("colorPicker");
const colorValue =
            document.getElementById("colorValue");
const colorPreview =
            document.getElementById("colorPreview");
const complementaryValue =
            document.getElementById("complementaryValue");
const complementaryPreview =
            document.getElementById("complementaryPreview");

function getComplementaryColor(hex) {
// 16進数からR,G,Bを取得
let r = parseInt(hex.substring(1, 3), 16);
let g = parseInt(hex.substring(3, 5), 16);
let b = parseInt(hex.substring(5, 7), 16);

// 補色を計算 (255 - R, 255 - G, 255 - B)
let compR = (255 - r).toString(16).padStart(2, "0");
let compG = (255 - g).toString(16).padStart(2, "0");
let compB = (255 - b).toString(16).padStart(2, "0");

return `#${compR}${compG}${compB}`;
}

colorPicker.addEventListener("input", function() {
let selectedColor = colorPicker.value;
let complementaryColor =
                getComplementaryColor(selectedColor);

// 更新
colorValue.textContent = selectedColor;
colorPreview.style.backgroundColor = selectedColor;

complementaryValue.textContent = complementaryColor;
complementaryPreview.style.backgroundColor =
                complementaryColor;
});
</script>
</body>
</html>

実行直後の画面

カラーパレットで任意の色を選択すれば・・・

ライブでその色と補色を表示します。

TCDW8465
夏場に冷蔵庫が使えないのは地獄ですね

夏場に冷蔵庫が使えないのは地獄ですね。修理を頼むんでも、その日に直り保証はないし・・・買い換えも直ぐには届かない。悪夢の日々が続きます。

水曜日, 7月 16, 2025

Excel VBA 47 
Excelで選択したエリアを一列おきに選択

Excelで選択したエリアを一行おきに選択し、色を設定します。
デフォルト環境で設定するのが面倒くさいので作成した一行版の一列版です。

Sub SelectAlternateColumnsWithinSelection()
Dim rng As Range
Dim colRange As Range
Dim newSelection As Range
Dim colIndex As Integer
' 選択範囲を取得
On Error Resume Next
Set rng = Selection
On Error GoTo 0
' 範囲が選択されていない場合、エラーを表示
If rng Is Nothing Then
MsgBox "セル範囲を選択してください。", _
vbExclamation, "エラー"
Exit Sub
End If

' 選択範囲の1列おきの列を取得
For colIndex = 1 To rng.Columns.Count Step 2
Set colRange = rng.Columns(colIndex)
If newSelection Is Nothing Then
Set newSelection = colRange
Else
Set newSelection = Union(newSelection, colRange)
End If
Next colIndex

' 選択を適用
If Not newSelection Is Nothing Then
newSelection.Select
End If

MsgBox "選択範囲内の1列おきの列を選択しました!", _
vbInformation, "完了"
End Sub

エリアを選択し・・・

実行すると1列おきに選択した状態になるので・・・

カラーパレットで任意の色を設定。
シンプルな動きの方が応用が利きますね。