---
title: 空間と透視図法
url: https://doc.liz6.com/ja/general-education/visual-foundations/04-perspective-and-space
locale: ja
area: general-education
tags:
- 教養入門
- 視覚表現の基礎
date: 2026-09-10
modified: 2026-09-10
description: 画像には実際の前後の距離がありません。それでも廊下、並木、卓上の物体の位置関係を読み取れます。複数の手がかりが、その読み取りを支えています。
---

# 空間と透視図法

画像には実際の前後の距離がありません。それでも廊下、並木、卓上の物体の位置関係を読み取れます。複数の手がかりが、その読み取りを支えています。

**まず重なりと相対的な大きさを見てから、透視と見る位置の関係を理解します。** 複雑な建物を描く必要はありません。なぜ遠近が感じられるのか、どんな条件が必要なのかを指摘するのが目標です。

## 重なりは順序を示す

球が箱の一角を隠していると、通常は球が手前、箱が奥と読み取ります。隠れる物体が全部見えていなくても、関係は伝わります。

ただし重なりが主に示すのは前後の順序で、何センチ離れているかではありません。平面的なコラージュでも同じ手がかりを作れます。ここでは画像が何を伝えるかを考えます。

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 210" width="400" height="210" role="img" aria-labelledby="vf-4-wide-title" data-diagram-layout="wide" data-diagram-theme="native">
<title id="vf-4-wide-title">A 二つの形の重なり、B 距離が増すと小さく見える同じ物体。</title>
<defs>
<radialGradient id="vf-4-wide-ball" cx="30%" cy="25%" r="80%">
<stop stop-color="#eee"/>
<stop offset=".5" stop-color="#aaa"/>
<stop offset="1" stop-color="#3f3f3f"/>
</radialGradient>
</defs>
<rect width="100%" height="100%" fill="#e8e4dc"/>
<g transform="translate(0 0) scale(1)">
<rect x="36" y="42" width="92" height="90" fill="#b7733e"/>
<rect x="81" y="78" width="92" height="90" fill="#536a78"/>
<text x="100" y="198" text-anchor="middle" font-family="sans-serif" font-size="22" fill="#34302a">A</text>
</g>
<g transform="translate(200 0) scale(1)">
<rect x="25" y="75" width="70" height="70" fill="#536a78"/>
<rect x="76" y="100" width="45" height="45" fill="#738162"/>
<rect x="127" y="118" width="27" height="27" fill="#b7733e"/>
<text x="100" y="198" text-anchor="middle" font-family="sans-serif" font-size="22" fill="#34302a">B</text>
</g>
</svg>

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 250 525" width="250" height="525" role="img" aria-labelledby="vf-4-compact-title" data-diagram-layout="compact" data-diagram-theme="native">
<title id="vf-4-compact-title">A 二つの形の重なり、B 距離が増すと小さく見える同じ物体。</title>
<defs>
<radialGradient id="vf-4-compact-ball" cx="30%" cy="25%" r="80%">
<stop stop-color="#eee"/>
<stop offset=".5" stop-color="#aaa"/>
<stop offset="1" stop-color="#3f3f3f"/>
</radialGradient>
</defs>
<rect width="100%" height="100%" fill="#e8e4dc"/>
<g transform="translate(0 0) scale(1.25)">
<rect x="36" y="42" width="92" height="90" fill="#b7733e"/>
<rect x="81" y="78" width="92" height="90" fill="#536a78"/>
<text x="100" y="198" text-anchor="middle" font-family="sans-serif" font-size="22" fill="#34302a">A</text>
</g>
<g transform="translate(0 262.5) scale(1.25)">
<rect x="25" y="75" width="70" height="70" fill="#536a78"/>
<rect x="76" y="100" width="45" height="45" fill="#738162"/>
<rect x="127" y="118" width="27" height="27" fill="#b7733e"/>
<text x="100" y="198" text-anchor="middle" font-family="sans-serif" font-size="22" fill="#34302a">B</text>
</g>
</svg>

A は重なりで前後を明確にし、B は同じ対象の見かけの大きさを変えて距離を示します。二つの方法は組み合わせられますが、与える情報は異なります。

## 小さいものが必ず遠いとは限らない

同じ見る条件では、**実際の寸法が同じ物体**は遠いほど画面内で小さくなります。同じ街灯が道に沿って並ぶ様子を思い浮かべてください。

実寸が違えば、近くの硬貨が遠くの建物より画面を大きく占めることもあります。「画像内で小さい」をそのまま「現実で遠い」と置き換えられません。見慣れた物体の大きさ、重なり、地面との関係を合わせて判断します。

## 透視は見る位置から始まる

画面を固定された窓と考えます。目と物体を結ぶ直線が窓と交わる位置に、物体が投影されます。見る位置が変わると交点も変わります。

水平な地面がある一般的な場面では、水平線は目の高さに対応します。同じ空間方向の平行線は、投影の中で一つの消失点へ近づくことがあります。**異なる方向には通常、異なる消失点があります。画面に平行な辺は、画面内の有限の点には集まりません。**

## 箱で目の高さを確かめる

下の一点透視では、箱の正面が画面に平行です。奥行き方向の辺は同じ消失点へ向かいます。カメラは水平を保ち、高さだけを変えます。

**重なりから透視へ：三つの奥行きの手がかり**

重なりは前後関係を示します。大きさ表示では同寸の板を異なる距離に置きます。透視表示は水平な視線を固定して目の高さを変え、箱と床が水平線に対してどう動くかを示します。画面に平行な辺は平行のままです。


目が箱の上面と同じ高さなら、上面はほぼ一本の線につぶれます。目を上げると、上面がよく見えるようになります。この実験で水平線が画面内の同じ位置にとどまるのは、カメラを傾けず、投影設定も固定しているためです。スマートフォンを持ち上げながら下へ傾ける操作は、二つの条件を同時に変えています。

地面を奥へ走る線は近づいて見えます。画面を横切る辺は平行のままですが、遠いものほど短く映ります。「すべての線を中央へ向ける」と覚えるより、**空間内の方向**を確かめるほうが役立ちます。

## 廊下から三種類の奥行きの証拠を読む

左の出入口と右の角柱が奥ほど小さくなり、床と天井の辺が遠方の同じ領域へ向かう廊下。

AI で生成した観察素材です。画像の手がかりを比較し、厳密な幾何関係は本文の作図で確認してください。


補助線を引く前に、見える証拠を探します。左の出入口は手前ほど大きく、奥で小さくなります。右の柱は重なり、床、壁、天井の辺は遠方へ狭まります。複数の手がかりが互いを支え、一つだけで空間全体を説明する必要はありません。

左壁の上辺と裾、右の柱列の方向をたどると、遠方の同じ領域へおおむね向かいます。**遠くの山の輪郭を、透視作図の視平線だと思わないでください。** 長い横線なら何でも視平線というわけでもありません。視平線は目の高さと水平な空間方向に関わり、山頂の線は具体的な地形を示します。

生成画像は観察に使い、厳密な測定には使いません。次は意図的に構成した部屋で、作図の順序を確かめます。

## 手順で学ぶ：家具を置ける部屋を組み立てる

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 520" width="640" height="520" data-vf-case="4" data-diagram-layout="wide" data-diagram-theme="native" role="img" aria-labelledby="case-4-wide-title">
<title id="case-4-wide-title">室内の作図。A 水平線と奥の壁、B 奥行き方向に出入口を追加、C 右の出入口の上辺が不整合。</title>
<rect width="100%" height="100%" fill="#f6f4ef"/>
<g transform="translate(0 0)">
<defs>
<clipPath id="case-4-wide-0">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-4-wide-0)">
<rect x="10" y="8" width="300" height="220" fill="#ece8df"/>
<rect x="118" y="82" width="88" height="64" fill="#d5d1c6"/>
<path d="M10 8L118 82V146L10 228Z" fill="#c4b7a4"/>
<path d="M310 8L206 82V146L310 228Z" fill="#ded5c6"/>
<path d="M10 228L118 146H206L310 228Z" fill="#b4afa3"/>
<path d="M10 112H310" stroke="#4f7076" stroke-width="1" stroke-dasharray="4 4"/>
<circle cx="162" cy="112" r="4" fill="#4f7076"/>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">A</text>
</g>
<g transform="translate(320 0)">
<defs>
<clipPath id="case-4-wide-1">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-4-wide-1)">
<rect x="10" y="8" width="300" height="220" fill="#ece8df"/>
<rect x="118" y="82" width="88" height="64" fill="#d5d1c6"/>
<path d="M10 8L118 82V146L10 228Z" fill="#c4b7a4"/>
<path d="M310 8L206 82V146L310 228Z" fill="#ded5c6"/>
<path d="M10 228L118 146H206L310 228Z" fill="#b4afa3"/>
<path d="M10 45L162 112M10 195L162 112M310 45L162 112M310 195L162 112" stroke="#a97a38" stroke-width="2" stroke-dasharray="5 4"/>
<path d="M48 61.75V174.25L61 167.1513157894737V67.48026315789474Z" fill="#596e70"/>
<path d="M80 75.85526315789474V156.7763157894737L93 149.67763157894737V81.58552631578948Z" fill="#596e70"/>
<path d="M102 85.55263157894737V144.76315789473685L115 137.66447368421052V91.28289473684211Z" fill="#596e70"/>
<path d="M234 79.4054054054054L286 55.86486486486486V181.54054054054052L234 152.3783783783784Z" fill="#596e70"/>
<path d="M10 112H310" stroke="#4f7076" stroke-width="1" stroke-dasharray="4 4"/>
<circle cx="162" cy="112" r="4" fill="#4f7076"/>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">B</text>
</g>
<g transform="translate(0 260)">
<defs>
<clipPath id="case-4-wide-2">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-4-wide-2)">
<rect x="10" y="8" width="300" height="220" fill="#ece8df"/>
<rect x="118" y="82" width="88" height="64" fill="#d5d1c6"/>
<path d="M10 8L118 82V146L10 228Z" fill="#c4b7a4"/>
<path d="M310 8L206 82V146L310 228Z" fill="#ded5c6"/>
<path d="M10 228L118 146H206L310 228Z" fill="#b4afa3"/>
<path d="M10 45L162 112M10 195L162 112M310 45L162 112M310 195L162 112" stroke="#a97a38" stroke-width="2" stroke-dasharray="5 4"/>
<path d="M48 61.75V174.25L61 167.1513157894737V67.48026315789474Z" fill="#596e70"/>
<path d="M80 75.85526315789474V156.7763157894737L93 149.67763157894737V81.58552631578948Z" fill="#596e70"/>
<path d="M102 85.55263157894737V144.76315789473685L115 137.66447368421052V91.28289473684211Z" fill="#596e70"/>
<path d="M234 79.4054054054054L286 109V181.54054054054052L234 152.3783783783784Z" fill="#ac5c48"/>
<path d="M10 112H310" stroke="#4f7076" stroke-width="1" stroke-dasharray="4 4"/>
<circle cx="162" cy="112" r="4" fill="#4f7076"/>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">C</text>
</g>
</svg>

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 780" width="320" height="780" data-vf-case="4" data-diagram-layout="compact" data-diagram-theme="native" role="img" aria-labelledby="case-4-compact-title">
<title id="case-4-compact-title">室内の作図。A 水平線と奥の壁、B 奥行き方向に出入口を追加、C 右の出入口の上辺が不整合。</title>
<rect width="100%" height="100%" fill="#f6f4ef"/>
<g transform="translate(0 0)">
<defs>
<clipPath id="case-4-compact-0">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-4-compact-0)">
<rect x="10" y="8" width="300" height="220" fill="#ece8df"/>
<rect x="118" y="82" width="88" height="64" fill="#d5d1c6"/>
<path d="M10 8L118 82V146L10 228Z" fill="#c4b7a4"/>
<path d="M310 8L206 82V146L310 228Z" fill="#ded5c6"/>
<path d="M10 228L118 146H206L310 228Z" fill="#b4afa3"/>
<path d="M10 112H310" stroke="#4f7076" stroke-width="1" stroke-dasharray="4 4"/>
<circle cx="162" cy="112" r="4" fill="#4f7076"/>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">A</text>
</g>
<g transform="translate(0 260)">
<defs>
<clipPath id="case-4-compact-1">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-4-compact-1)">
<rect x="10" y="8" width="300" height="220" fill="#ece8df"/>
<rect x="118" y="82" width="88" height="64" fill="#d5d1c6"/>
<path d="M10 8L118 82V146L10 228Z" fill="#c4b7a4"/>
<path d="M310 8L206 82V146L310 228Z" fill="#ded5c6"/>
<path d="M10 228L118 146H206L310 228Z" fill="#b4afa3"/>
<path d="M10 45L162 112M10 195L162 112M310 45L162 112M310 195L162 112" stroke="#a97a38" stroke-width="2" stroke-dasharray="5 4"/>
<path d="M48 61.75V174.25L61 167.1513157894737V67.48026315789474Z" fill="#596e70"/>
<path d="M80 75.85526315789474V156.7763157894737L93 149.67763157894737V81.58552631578948Z" fill="#596e70"/>
<path d="M102 85.55263157894737V144.76315789473685L115 137.66447368421052V91.28289473684211Z" fill="#596e70"/>
<path d="M234 79.4054054054054L286 55.86486486486486V181.54054054054052L234 152.3783783783784Z" fill="#596e70"/>
<path d="M10 112H310" stroke="#4f7076" stroke-width="1" stroke-dasharray="4 4"/>
<circle cx="162" cy="112" r="4" fill="#4f7076"/>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">B</text>
</g>
<g transform="translate(0 520)">
<defs>
<clipPath id="case-4-compact-2">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-4-compact-2)">
<rect x="10" y="8" width="300" height="220" fill="#ece8df"/>
<rect x="118" y="82" width="88" height="64" fill="#d5d1c6"/>
<path d="M10 8L118 82V146L10 228Z" fill="#c4b7a4"/>
<path d="M310 8L206 82V146L310 228Z" fill="#ded5c6"/>
<path d="M10 228L118 146H206L310 228Z" fill="#b4afa3"/>
<path d="M10 45L162 112M10 195L162 112M310 45L162 112M310 195L162 112" stroke="#a97a38" stroke-width="2" stroke-dasharray="5 4"/>
<path d="M48 61.75V174.25L61 167.1513157894737V67.48026315789474Z" fill="#596e70"/>
<path d="M80 75.85526315789474V156.7763157894737L93 149.67763157894737V81.58552631578948Z" fill="#596e70"/>
<path d="M102 85.55263157894737V144.76315789473685L115 137.66447368421052V91.28289473684211Z" fill="#596e70"/>
<path d="M234 79.4054054054054L286 109V181.54054054054052L234 152.3783783783784Z" fill="#ac5c48"/>
<path d="M10 112H310" stroke="#4f7076" stroke-width="1" stroke-dasharray="4 4"/>
<circle cx="162" cy="112" r="4" fill="#4f7076"/>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">C</text>
</g>
</svg>

**A：見る条件を決めます。** カメラは水平で奥の壁に正対しています。視平線を引き、その上に奥行き方向の消失点を置き、画面に平行な奥の壁を長方形で示します。その四隅の方向を外側の画框まで延ばすと、壁、天井、床が組み上がります。消失点は方向を整理するもので、画面の主役を必ずそこへ置く命令ではありません。

**B：空間の中に物を置きます。** 左壁に出入口を加えます。縦辺は縦のまま、上辺と下辺は壁の奥行き方向へ収束します。遠いほど小さく見え、間隔も圧縮されます。紙の上で全部を等幅、等間隔にすると、異なる深さを無視することになります。

**C：整合しない例を診断します。** 右の出入口の上辺が、壁の方向と合わない向きへ進んでいます。木目や影を足しても構造の誤りは直りません。どの空間方向の辺かを確認してから直します。すべての線を一つの点に集める必要はありません。

## 等間隔を作図する：奥行きが等しい四枚のタイル

水平な床を水平なカメラで正面から見る条件です。横方向の辺は水平、左右の辺は V へ向かいます。A は長方形の床の投影で、AB が手前、CD が奥。画面上の高さではなく、実際の奥行きを四等分します。

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 520" width="640" height="520" data-vf-case="steps-floor" data-diagram-layout="wide" data-diagram-theme="native" role="img" aria-labelledby="case-steps-floor-wide-title">
<title id="case-steps-floor-wide-title">等間隔を作図する：奥行きが等しい四枚のタイル</title>
<rect width="100%" height="100%" fill="#f6f4ef"/>
<g transform="translate(0 0)">
<defs>
<clipPath id="case-steps-floor-wide-0">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-steps-floor-wide-0)">
<rect x="10" y="8" width="300" height="220" fill="#eee9df" />
<polygon points="30.0,165.0 290.0,165.0 186.0,61.0 134.0,61.0" fill="#c6c9bd" stroke="#526c70" stroke-width="2"/>
<text x="16.0" y="184.0" font-size="18" font-family="sans-serif" fill="#293b43">A</text>
<text x="292.0" y="184.0" font-size="18" font-family="sans-serif" fill="#293b43">B</text>
<text x="191.0" y="57.0" font-size="18" font-family="sans-serif" fill="#293b43">C</text>
<text x="117.0" y="57.0" font-size="18" font-family="sans-serif" fill="#293b43">D</text>
<text x="150" y="30" font-size="18" font-family="sans-serif" fill="#293b43">V</text>
<circle cx="160" cy="35" r="3" fill="#526c70"/>
<path d="M134.0 61.0L160 35" stroke="#829391" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M186.0 61.0L160 35" stroke="#829391" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">A</text>
</g>
<g transform="translate(320 0)">
<defs>
<clipPath id="case-steps-floor-wide-1">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-steps-floor-wide-1)">
<rect x="10" y="8" width="300" height="220" fill="#eee9df" />
<polygon points="30.0,165.0 290.0,165.0 186.0,61.0 134.0,61.0" fill="#c6c9bd" stroke="#526c70" stroke-width="2"/>
<text x="16.0" y="184.0" font-size="18" font-family="sans-serif" fill="#293b43">A</text>
<text x="292.0" y="184.0" font-size="18" font-family="sans-serif" fill="#293b43">B</text>
<text x="191.0" y="57.0" font-size="18" font-family="sans-serif" fill="#293b43">C</text>
<text x="117.0" y="57.0" font-size="18" font-family="sans-serif" fill="#293b43">D</text>
<text x="150" y="30" font-size="18" font-family="sans-serif" fill="#293b43">V</text>
<circle cx="160" cy="35" r="3" fill="#526c70"/>
<path d="M134.0 61.0L160 35" stroke="#829391" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M186.0 61.0L160 35" stroke="#829391" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M30.0 165.0L186.0 61.0" stroke="#ad7131" stroke-width="2" fill="none"/>
<path d="M290.0 165.0L134.0 61.0" stroke="#ad7131" stroke-width="2" fill="none"/>
<path d="M116.66666666666666 78.33333333333334L203.33333333333334 78.33333333333334" stroke="#ad7131" stroke-width="2" fill="none"/>
<circle cx="160" cy="78.333333" r="4" fill="#ad7131"/>
<text x="164" y="99" font-size="18" font-family="sans-serif" fill="#293b43">M</text>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">B</text>
</g>
<g transform="translate(0 260)">
<defs>
<clipPath id="case-steps-floor-wide-2">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-steps-floor-wide-2)">
<rect x="10" y="8" width="300" height="220" fill="#eee9df" />
<polygon points="30.0,165.0 290.0,165.0 186.0,61.0 134.0,61.0" fill="#c6c9bd" stroke="#526c70" stroke-width="2"/>
<text x="16.0" y="184.0" font-size="18" font-family="sans-serif" fill="#293b43">A</text>
<text x="292.0" y="184.0" font-size="18" font-family="sans-serif" fill="#293b43">B</text>
<text x="191.0" y="57.0" font-size="18" font-family="sans-serif" fill="#293b43">C</text>
<text x="117.0" y="57.0" font-size="18" font-family="sans-serif" fill="#293b43">D</text>
<text x="150" y="30" font-size="18" font-family="sans-serif" fill="#293b43">V</text>
<circle cx="160" cy="35" r="3" fill="#526c70"/>
<path d="M134.0 61.0L160 35" stroke="#829391" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M186.0 61.0L160 35" stroke="#829391" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M30.0 165.0L186.0 61.0" stroke="#ad7131" stroke-width="2" fill="none"/>
<path d="M290.0 165.0L134.0 61.0" stroke="#ad7131" stroke-width="2" fill="none"/>
<path d="M116.66666666666666 78.33333333333334L203.33333333333334 78.33333333333334" stroke="#ad7131" stroke-width="2" fill="none"/>
<circle cx="160" cy="78.333333" r="4" fill="#ad7131"/>
<text x="164" y="99" font-size="18" font-family="sans-serif" fill="#293b43">M</text>
<path d="M95.0 100.0L225.0 100.0" stroke="#777c78" stroke-width="2" fill="none"/>
<path d="M127.5 67.5L192.5 67.5" stroke="#777c78" stroke-width="2" fill="none"/>
<path d="M30.0 165.0L203.33333333333334 78.33333333333334" stroke="#9b9380" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M290.0 165.0L116.66666666666666 78.33333333333334" stroke="#9b9380" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M116.66666666666666 78.33333333333334L186.0 61.0" stroke="#9b9380" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M203.33333333333334 78.33333333333334L134.0 61.0" stroke="#9b9380" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">C</text>
</g>
<g transform="translate(320 260)">
<defs>
<clipPath id="case-steps-floor-wide-3">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-steps-floor-wide-3)">
<rect x="10" y="8" width="300" height="220" fill="#eee9df" />
<polygon points="30.0,165.0 290.0,165.0 186.0,61.0 134.0,61.0" fill="#c6c9bd" stroke="#526c70" stroke-width="2"/>
<text x="16.0" y="184.0" font-size="18" font-family="sans-serif" fill="#293b43">A</text>
<text x="292.0" y="184.0" font-size="18" font-family="sans-serif" fill="#293b43">B</text>
<text x="191.0" y="57.0" font-size="18" font-family="sans-serif" fill="#293b43">C</text>
<text x="117.0" y="57.0" font-size="18" font-family="sans-serif" fill="#293b43">D</text>
<text x="150" y="30" font-size="18" font-family="sans-serif" fill="#293b43">V</text>
<circle cx="160" cy="35" r="3" fill="#526c70"/>
<path d="M134.0 61.0L160 35" stroke="#829391" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M186.0 61.0L160 35" stroke="#829391" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M108.0 87.0L212.0 87.0" stroke="#a35f4d" stroke-width="2" fill="none"/>
<path d="M82.0 113.0L238.0 113.0" stroke="#a35f4d" stroke-width="2" fill="none"/>
<path d="M56.0 139.0L264.0 139.0" stroke="#a35f4d" stroke-width="2" fill="none"/>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">D</text>
</g>
</svg>

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 1040" width="320" height="1040" data-vf-case="steps-floor" data-diagram-layout="compact" data-diagram-theme="native" role="img" aria-labelledby="case-steps-floor-compact-title">
<title id="case-steps-floor-compact-title">等間隔を作図する：奥行きが等しい四枚のタイル</title>
<rect width="100%" height="100%" fill="#f6f4ef"/>
<g transform="translate(0 0)">
<defs>
<clipPath id="case-steps-floor-compact-0">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-steps-floor-compact-0)">
<rect x="10" y="8" width="300" height="220" fill="#eee9df" />
<polygon points="30.0,165.0 290.0,165.0 186.0,61.0 134.0,61.0" fill="#c6c9bd" stroke="#526c70" stroke-width="2"/>
<text x="16.0" y="184.0" font-size="18" font-family="sans-serif" fill="#293b43">A</text>
<text x="292.0" y="184.0" font-size="18" font-family="sans-serif" fill="#293b43">B</text>
<text x="191.0" y="57.0" font-size="18" font-family="sans-serif" fill="#293b43">C</text>
<text x="117.0" y="57.0" font-size="18" font-family="sans-serif" fill="#293b43">D</text>
<text x="150" y="30" font-size="18" font-family="sans-serif" fill="#293b43">V</text>
<circle cx="160" cy="35" r="3" fill="#526c70"/>
<path d="M134.0 61.0L160 35" stroke="#829391" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M186.0 61.0L160 35" stroke="#829391" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">A</text>
</g>
<g transform="translate(0 260)">
<defs>
<clipPath id="case-steps-floor-compact-1">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-steps-floor-compact-1)">
<rect x="10" y="8" width="300" height="220" fill="#eee9df" />
<polygon points="30.0,165.0 290.0,165.0 186.0,61.0 134.0,61.0" fill="#c6c9bd" stroke="#526c70" stroke-width="2"/>
<text x="16.0" y="184.0" font-size="18" font-family="sans-serif" fill="#293b43">A</text>
<text x="292.0" y="184.0" font-size="18" font-family="sans-serif" fill="#293b43">B</text>
<text x="191.0" y="57.0" font-size="18" font-family="sans-serif" fill="#293b43">C</text>
<text x="117.0" y="57.0" font-size="18" font-family="sans-serif" fill="#293b43">D</text>
<text x="150" y="30" font-size="18" font-family="sans-serif" fill="#293b43">V</text>
<circle cx="160" cy="35" r="3" fill="#526c70"/>
<path d="M134.0 61.0L160 35" stroke="#829391" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M186.0 61.0L160 35" stroke="#829391" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M30.0 165.0L186.0 61.0" stroke="#ad7131" stroke-width="2" fill="none"/>
<path d="M290.0 165.0L134.0 61.0" stroke="#ad7131" stroke-width="2" fill="none"/>
<path d="M116.66666666666666 78.33333333333334L203.33333333333334 78.33333333333334" stroke="#ad7131" stroke-width="2" fill="none"/>
<circle cx="160" cy="78.333333" r="4" fill="#ad7131"/>
<text x="164" y="99" font-size="18" font-family="sans-serif" fill="#293b43">M</text>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">B</text>
</g>
<g transform="translate(0 520)">
<defs>
<clipPath id="case-steps-floor-compact-2">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-steps-floor-compact-2)">
<rect x="10" y="8" width="300" height="220" fill="#eee9df" />
<polygon points="30.0,165.0 290.0,165.0 186.0,61.0 134.0,61.0" fill="#c6c9bd" stroke="#526c70" stroke-width="2"/>
<text x="16.0" y="184.0" font-size="18" font-family="sans-serif" fill="#293b43">A</text>
<text x="292.0" y="184.0" font-size="18" font-family="sans-serif" fill="#293b43">B</text>
<text x="191.0" y="57.0" font-size="18" font-family="sans-serif" fill="#293b43">C</text>
<text x="117.0" y="57.0" font-size="18" font-family="sans-serif" fill="#293b43">D</text>
<text x="150" y="30" font-size="18" font-family="sans-serif" fill="#293b43">V</text>
<circle cx="160" cy="35" r="3" fill="#526c70"/>
<path d="M134.0 61.0L160 35" stroke="#829391" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M186.0 61.0L160 35" stroke="#829391" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M30.0 165.0L186.0 61.0" stroke="#ad7131" stroke-width="2" fill="none"/>
<path d="M290.0 165.0L134.0 61.0" stroke="#ad7131" stroke-width="2" fill="none"/>
<path d="M116.66666666666666 78.33333333333334L203.33333333333334 78.33333333333334" stroke="#ad7131" stroke-width="2" fill="none"/>
<circle cx="160" cy="78.333333" r="4" fill="#ad7131"/>
<text x="164" y="99" font-size="18" font-family="sans-serif" fill="#293b43">M</text>
<path d="M95.0 100.0L225.0 100.0" stroke="#777c78" stroke-width="2" fill="none"/>
<path d="M127.5 67.5L192.5 67.5" stroke="#777c78" stroke-width="2" fill="none"/>
<path d="M30.0 165.0L203.33333333333334 78.33333333333334" stroke="#9b9380" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M290.0 165.0L116.66666666666666 78.33333333333334" stroke="#9b9380" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M116.66666666666666 78.33333333333334L186.0 61.0" stroke="#9b9380" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M203.33333333333334 78.33333333333334L134.0 61.0" stroke="#9b9380" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">C</text>
</g>
<g transform="translate(0 780)">
<defs>
<clipPath id="case-steps-floor-compact-3">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-steps-floor-compact-3)">
<rect x="10" y="8" width="300" height="220" fill="#eee9df" />
<polygon points="30.0,165.0 290.0,165.0 186.0,61.0 134.0,61.0" fill="#c6c9bd" stroke="#526c70" stroke-width="2"/>
<text x="16.0" y="184.0" font-size="18" font-family="sans-serif" fill="#293b43">A</text>
<text x="292.0" y="184.0" font-size="18" font-family="sans-serif" fill="#293b43">B</text>
<text x="191.0" y="57.0" font-size="18" font-family="sans-serif" fill="#293b43">C</text>
<text x="117.0" y="57.0" font-size="18" font-family="sans-serif" fill="#293b43">D</text>
<text x="150" y="30" font-size="18" font-family="sans-serif" fill="#293b43">V</text>
<circle cx="160" cy="35" r="3" fill="#526c70"/>
<path d="M134.0 61.0L160 35" stroke="#829391" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M186.0 61.0L160 35" stroke="#829391" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<path d="M108.0 87.0L212.0 87.0" stroke="#a35f4d" stroke-width="2" fill="none"/>
<path d="M82.0 113.0L238.0 113.0" stroke="#a35f4d" stroke-width="2" fill="none"/>
<path d="M56.0 139.0L264.0 139.0" stroke="#a35f4d" stroke-width="2" fill="none"/>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">D</text>
</g>
</svg>

B：A と C、B と D を結び、交点を M とします。長方形の中心は投影後もこの対角線の交点です。M を通る AB と平行な横線が実際の奥行きを半分に分けます。画面上で M が奥側に寄るのは、距離が圧縮されるためです。

C：前後の二つの長方形でも対角線の交点を求め、横線を引くと、実際の奥行きが等しい四枚になります。細い破線は二回目の作図。D は画面上の間隔を等しくしたため、この条件で等深のタイルとは言えません。

長方形の壁にも応用できます。対角線で中心を求め、その面の別の辺方向に分割します。二点透視では分割線も対応する消失点へ向かい、機械的な水平線ではありません。これは反復間隔の作図であり、扉の幅や高さにもそれぞれの方向関係が必要です。

## 箱を回すと、なぜ消失点が二つになるのか

先ほどの壁や箱の正面は画面に平行なので、その横辺は水平を保ち、奥行きの辺が収束しました。箱を地面上で回すと、二組の水平辺がどちらも奥へ向かい、それぞれの消失点を持つのが一般的です。カメラが水平なら縦辺は縦のままです。これがよく使う二点透視です。

二つの点は画框の外でも構いません。両方を紙の中へ押し込むと、手前の角が過度に尖り、左右の縮み方が急になることがあります。点の数より見る位置と投影の関係を確かめます。高い建物を見上げれば縦辺も収束し、カメラの条件が変わります。

## 定規がなくても奥行きを整理できる

| 手がかり | 説明できること | 注意すること |
| --- | --- | --- |
| 重なり | 前後の順序 | 直接、距離は得られない |
| 同寸と分かる物の見かけの大きさ | 相対的な遠近 | 実寸不明なら小さい物が遠いとは限らない |
| 密になる質感、圧縮される間隔 | 面が奥へ延びること | 繰り返しも共通の空間方向に従う |
| 遠方の細部と対比の減少 | 一般的な大気条件での距離感 | 空気、照明、材質で変わり、室内を一律に青くする必要はない |

霧の山なら、直線の作図を至る所に加えるより、重なり、尺度、遠方の弱い細部や対比で層を組み立てられます。対象の構造に合う道具を選びましょう。

## 柱の列で確認：奥の一本はどう違う？

柱は同じ高さで同一の水平面に立ち、カメラは水平、目の高さは柱高と同じです。A が基準、B は一本を変更、C は A に補助線を追加。B は条件を満たすでしょうか。図の根拠と、B が成立しうる別の条件を述べてください。

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 520" width="640" height="520" data-vf-case="practice-4" data-diagram-layout="wide" data-diagram-theme="native" role="img" aria-labelledby="case-practice-4-wide-title">
<title id="case-practice-4-wide-title">柱の列で確認：奥の一本はどう違う？</title>
<rect width="100%" height="100%" fill="#f6f4ef"/>
<g transform="translate(0 0)">
<defs>
<clipPath id="case-practice-4-wide-0">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-practice-4-wide-0)">
<rect x="10" y="8" width="300" height="220" fill="#dedfda" />
<path d="M10 75L310 75" stroke="#718387" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<rect x="55" y="75" width="12" height="128" fill="#536d77" />
<path d="M50 203L74 203" stroke="#9e7445" stroke-width="2" fill="none"/>
<rect x="142" y="75" width="12" height="72" fill="#536d77" />
<path d="M137 147L161 147" stroke="#9e7445" stroke-width="2" fill="none"/>
<rect x="222" y="75" width="12" height="40" fill="#536d77" />
<path d="M217 115L241 115" stroke="#9e7445" stroke-width="2" fill="none"/>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">A</text>
</g>
<g transform="translate(320 0)">
<defs>
<clipPath id="case-practice-4-wide-1">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-practice-4-wide-1)">
<rect x="10" y="8" width="300" height="220" fill="#dedfda" />
<path d="M10 75L310 75" stroke="#718387" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<rect x="55" y="75" width="12" height="128" fill="#536d77" />
<path d="M50 203L74 203" stroke="#9e7445" stroke-width="2" fill="none"/>
<rect x="142" y="75" width="12" height="72" fill="#536d77" />
<path d="M137 147L161 147" stroke="#9e7445" stroke-width="2" fill="none"/>
<rect x="222" y="27" width="12" height="88" fill="#536d77" />
<path d="M217 115L241 115" stroke="#9e7445" stroke-width="2" fill="none"/>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">B</text>
</g>
<g transform="translate(0 260)">
<defs>
<clipPath id="case-practice-4-wide-2">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-practice-4-wide-2)">
<rect x="10" y="8" width="300" height="220" fill="#dedfda" />
<path d="M10 75L310 75" stroke="#718387" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<rect x="55" y="75" width="12" height="128" fill="#536d77" />
<path d="M50 203L74 203" stroke="#9e7445" stroke-width="2" fill="none"/>
<rect x="142" y="75" width="12" height="72" fill="#536d77" />
<path d="M137 147L161 147" stroke="#9e7445" stroke-width="2" fill="none"/>
<rect x="222" y="75" width="12" height="40" fill="#536d77" />
<path d="M217 115L241 115" stroke="#9e7445" stroke-width="2" fill="none"/>
<path d="M60 75L299 75" stroke="#9e7445" stroke-width="2" fill="none"/>
<text x="245" y="69" font-size="18" font-family="sans-serif" fill="#293b43">H</text>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">C</text>
</g>
</svg>

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 780" width="320" height="780" data-vf-case="practice-4" data-diagram-layout="compact" data-diagram-theme="native" role="img" aria-labelledby="case-practice-4-compact-title">
<title id="case-practice-4-compact-title">柱の列で確認：奥の一本はどう違う？</title>
<rect width="100%" height="100%" fill="#f6f4ef"/>
<g transform="translate(0 0)">
<defs>
<clipPath id="case-practice-4-compact-0">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-practice-4-compact-0)">
<rect x="10" y="8" width="300" height="220" fill="#dedfda" />
<path d="M10 75L310 75" stroke="#718387" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<rect x="55" y="75" width="12" height="128" fill="#536d77" />
<path d="M50 203L74 203" stroke="#9e7445" stroke-width="2" fill="none"/>
<rect x="142" y="75" width="12" height="72" fill="#536d77" />
<path d="M137 147L161 147" stroke="#9e7445" stroke-width="2" fill="none"/>
<rect x="222" y="75" width="12" height="40" fill="#536d77" />
<path d="M217 115L241 115" stroke="#9e7445" stroke-width="2" fill="none"/>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">A</text>
</g>
<g transform="translate(0 260)">
<defs>
<clipPath id="case-practice-4-compact-1">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-practice-4-compact-1)">
<rect x="10" y="8" width="300" height="220" fill="#dedfda" />
<path d="M10 75L310 75" stroke="#718387" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<rect x="55" y="75" width="12" height="128" fill="#536d77" />
<path d="M50 203L74 203" stroke="#9e7445" stroke-width="2" fill="none"/>
<rect x="142" y="75" width="12" height="72" fill="#536d77" />
<path d="M137 147L161 147" stroke="#9e7445" stroke-width="2" fill="none"/>
<rect x="222" y="27" width="12" height="88" fill="#536d77" />
<path d="M217 115L241 115" stroke="#9e7445" stroke-width="2" fill="none"/>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">B</text>
</g>
<g transform="translate(0 520)">
<defs>
<clipPath id="case-practice-4-compact-2">
<rect x="10" y="8" width="300" height="220" rx="3"/>
</clipPath>
</defs>
<g clip-path="url(#case-practice-4-compact-2)">
<rect x="10" y="8" width="300" height="220" fill="#dedfda" />
<path d="M10 75L310 75" stroke="#718387" stroke-width="2" fill="none" stroke-dasharray="4 4"/>
<rect x="55" y="75" width="12" height="128" fill="#536d77" />
<path d="M50 203L74 203" stroke="#9e7445" stroke-width="2" fill="none"/>
<rect x="142" y="75" width="12" height="72" fill="#536d77" />
<path d="M137 147L161 147" stroke="#9e7445" stroke-width="2" fill="none"/>
<rect x="222" y="75" width="12" height="40" fill="#536d77" />
<path d="M217 115L241 115" stroke="#9e7445" stroke-width="2" fill="none"/>
<path d="M60 75L299 75" stroke="#9e7445" stroke-width="2" fill="none"/>
<text x="245" y="69" font-size="18" font-family="sans-serif" fill="#293b43">H</text>
</g>
<text x="160" y="251" text-anchor="middle" font-size="21" font-family="sans-serif" fill="#555">C</text>
</g>
</svg>

<details data-vf-practice="4"><summary>先に判断してから解説を開く</summary>

B は奥の柱の底を保ったまま、上端を共通の水平線より高くしています。柱高と目の高さが同じなら、上端はすべて水平線上に投影され、A と C が合います。B はその柱だけ高い場合などには成立しますが、「同じ高さ、同じ地面」という条件は変わります。

</details>

## 間違えやすい二つの判断

**状況一：** 写真の手前にある小さなカップが、奥の大きな水差しより小さく写っています。透視に反していますか。

<details><summary>考え方の例を開く</summary><p>いいえ。遠近による大きさを直接比較するには、実寸が同じか、その違いを考慮する必要があります。投影の大きさは実寸と距離の両方によって決まります。</p></details>

**状況二：** 一点透視の箱の正面で、上辺と下辺が収束していません。直す必要がありますか。

<details><summary>考え方の例を開く</summary><p>正面が画面に平行なら、そのままで構いません。横方向の辺は平行を保ちます。奥へ伸びる別の組の辺が、対応する消失点へ向かいます。まず各辺がどの空間方向に属するかを確かめます。</p></details>

任意の実践：机と同じ高さ、机より高い位置から箱を見ます。視線を水平に保ち、見える上面、重なり、辺の方向を比較します。その後で視線を傾け、条件の違いを確認してください。

参考：[Getty：前景から背景へ](https://www.getty.edu/education/teachers/classroom_resources/curricula/landscapes/lesson02.html)、[ナショナル・ギャラリー：消失点](https://www.nationalgallery.org.uk/paintings/glossary/vanishing-point)。
