長方体体積・表面積計算機

長方体の体積、表面積、底面積、空間対角線を計算し、複数の単位サポートと可視化機能を提供

クイック長さ:
クイック幅:
クイック高さ:

ツール概要:直方体体積・表面積計算ツール

このツールは包括的な直方体幾何学計算システムを提供します。直方体の体積、表面積、底面積、対角線長の計算をサポートし、複数の単位変換、3D可視化、計算履歴機能があります。数学学習と工学設計に不可欠なツールです。

直方体体積・表面積計算ツールとは?

直方体体積・表面積計算ツールは入力値から結果を計算し、素早い確認に使えます。

使い方

  1. 必要な数値を入力します。
  2. 単位や条件を選択します。
  3. 計算して結果を確認します。

よくある利用シーン

  • 学習時の公式確認
  • 設計・工学の簡易見積り
  • 日常の計算と検証

❓ よくある質問

Q1: 精度は?
A: 必要に応じて小数桁を調整してください。

Q2: 単位が違う?
A: 計算前に単位を揃えてください。

Q3: 対応範囲は?
A: 一般的な範囲での利用に適しています。

✨ 主な機能

  • 📐 複数計算: 体積、表面積、底面積、対角線長をワンクリックで計算
  • 📏 多単位サポート: メートル、センチメートル、ミリメートル、キロメートル、インチ、フィート
  • 📊 3D可視化: リアルタイムの直方体グラフィック表示
  • 📝 計算履歴: 自動計算記録保存
  • リアルタイム計算: 入力中に即座に結果を表示
  • 🔄 独立単位: 長さ、幅、高さで異なる単位を使用可能

📖 使用例

基本計算

長さ5メートル、幅3メートル、高さ2メートルを入力:

長さ: 5 m
幅: 3 m
高さ: 2 m
体積: 30.0000 m³
表面積: 62.0000 m²
底面積: 15.0000 m²
対角線: 6.1644 m

長さ10センチメートル、幅8センチメートル、高さ6センチメートルを入力:

長さ: 10 cm
幅: 8 cm
高さ: 6 cm
体積: 480.0000 cm³
表面積: 376.0000 cm²
底面積: 80.0000 cm²
対角線: 14.1421 cm

混合単位の例

混合単位計算:

長さ: 100センチメートル = 1メートル
幅: 50センチメートル = 0.5メートル
高さ: 2メートル
体積: 1.0000 m³
表面積: 7.0000 m²

🎯 直方体の体積・表面積を活用するユースケース

1. 直方体パッケージの体積と材料コスト算定

// 箱体積計算機
class BoxCalculator {
  constructor() {
    this.materials = {
      cardboard: { pricePerM2: 2, density: 0.7 },    // 段ボール
      plastic: { pricePerKg: 3, density: 0.95 },     // プラスチック
      wood: { pricePerM3: 500, density: 700 }        // 木
    };
  }

  // 箱のコスト計算
  calculateBoxCost(length, width, height, material, thickness = 0.01) {
    // 外側の箱体積
    const outerVolume = length * width * height;
    
    // 内側の箱体積(材料厚さを考慮)
    const innerLength = length - 2 * thickness;
    const innerWidth = width - 2 * thickness;
    const innerHeight = height - 2 * thickness;
    const innerVolume = innerLength * innerWidth * innerHeight;
    
    // 材料体積
    const materialVolume = outerVolume - innerVolume;
    
    // 表面積(材料コスト計算用)
    const surfaceArea = 2 * (length * width + length * height + width * height);
    
    // 材料コスト計算
    const materialInfo = this.materials[material];
    let materialCost = 0;
    
    if (material === 'wood') {
      materialCost = materialVolume * materialInfo.pricePerM3;
    } else {
      const materialWeight = materialVolume * materialInfo.density;
      materialCost = materialWeight * materialInfo.pricePerKg;
    }
    
    return {
      outerVolume: outerVolume.toFixed(3),
      innerVolume: innerVolume.toFixed(3),
      materialVolume: materialVolume.toFixed(3),
      surfaceArea: surfaceArea.toFixed(3),
      materialCost: materialCost.toFixed(2),
      material: material
    };
  }
}

// 使用例
const boxCalc = new BoxCalculator();
const boxInfo = boxCalc.calculateBoxCost(0.5, 0.3, 0.2, 'cardboard', 0.005); // 長さ0.5m、幅0.3m、高さ0.2m、段ボール、厚さ5mm
console.log('箱情報:', boxInfo);

2. 直方体の室内空間と空調負荷計算

// 部屋空間計算機
class RoomSpaceCalculator {
  constructor() {
    this.airDensity = 1.225; // 海面レベル、15°Cでの kg/m³
    this.personAirRequirement = 0.03; // 1人あたり1分あたりの m³
  }

  // 部屋空間情報の計算
  calculateRoomSpace(length, width, height, occupancy = 1) {
    const volume = length * width * height;
    const floorArea = length * width;
    const wallArea = 2 * (length * height + width * height);
    const ceilingArea = floorArea;
    
    // 空気質計算
    const totalAirVolume = volume;
    const airMass = volume * this.airDensity;
    const airPerPerson = totalAirVolume / occupancy;
    const minutesOfAirPerPerson = airPerPerson / this.personAirRequirement;
    
    // 暖房/冷房計算
    const heatingCapacity = volume * 50; // 暖房用 50W/m³
    const coolingCapacity = volume * 80; // 冷房用 80W/m³
    
    return {
      volume: volume.toFixed(2),
      floorArea: floorArea.toFixed(2),
      wallArea: wallArea.toFixed(2),
      ceilingArea: ceilingArea.toFixed(2),
      airMass: airMass.toFixed(2),
      airPerPerson: airPerPerson.toFixed(2),
      minutesOfAirPerPerson: minutesOfAirPerPerson.toFixed(0),
      heatingCapacity: heatingCapacity.toFixed(0),
      coolingCapacity: coolingCapacity.toFixed(0),
      occupancy: occupancy
    };
  }

  // 壁の塗装に必要な量を計算
  calculatePaintNeeded(length, width, height, coats = 2, coverage = 10) {
    const wallArea = 2 * (length * height + width * height);
    const totalArea = wallArea * coats;
    const paintNeeded = totalArea / coverage; // coverage in m² per liter
    
    return {
      wallArea: wallArea.toFixed(2),
      totalArea: totalArea.toFixed(2),
      paintNeeded: paintNeeded.toFixed(2),
      coats: coats
    };
  }
}

// 使用例
const roomCalc = new RoomSpaceCalculator();
const roomInfo = roomCalc.calculateRoomSpace(6, 4, 2.8, 4); // 長さ6m、幅4m、高さ2.8m、4人
console.log('部屋情報:', roomInfo);

const paintInfo = roomCalc.calculatePaintNeeded(6, 4, 2.8, 2, 10); // 2回塗り、1リットルあたり10m²のカバー率
console.log('塗装情報:', paintInfo);

3. 輸送・保管計算

// 輸送コンテナ計算機
class ShippingCalculator {
  constructor() {
    this.containerTypes = {
      '20ft': { length: 6.1, width: 2.4, height: 2.6, maxWeight: 28200 },
      '40ft': { length: 12.2, width: 2.4, height: 2.6, maxWeight: 28800 },
      '40ftHC': { length: 12.2, width: 2.4, height: 2.9, maxWeight: 29500 }
    };
  }

  // コンテナに何個入るか計算
  calculateContainerFit(itemLength, itemWidth, itemHeight, containerType = '20ft') {
    const container = this.containerTypes[containerType];
    
    // 各次元で何個入るか計算
    const itemsPerLength = Math.floor(container.length / itemLength);
    const itemsPerWidth = Math.floor(container.width / itemWidth);
    const itemsPerHeight = Math.floor(container.height / itemHeight);
    
    // 合計アイテム数
    const totalItems = itemsPerLength * itemsPerWidth * itemsPerHeight;
    
    // 使用空間計算
    const usedVolume = totalItems * itemLength * itemWidth * itemHeight;
    const containerVolume = container.length * container.width * container.height;
    const spaceUtilization = (usedVolume / containerVolume) * 100;
    
    return {
      containerType: containerType,
      containerDimensions: {
        length: container.length,
        width: container.width,
        height: container.height
      },
      itemDimensions: {
        length: itemLength,
        width: itemWidth,
        height: itemHeight
      },
      itemsPerDimension: {
        length: itemsPerLength,
        width: itemsPerWidth,
        height: itemsPerHeight
      },
      totalItems: totalItems,
      usedVolume: usedVolume.toFixed(2),
      containerVolume: containerVolume.toFixed(2),
      spaceUtilization: spaceUtilization.toFixed(2),
      maxWeight: container.maxWeight
    };
  }

  // 体積に基づく輸送コスト計算
  calculateShippingCost(length, width, height, weight, ratePerKg, ratePerM3) {
    const volume = length * width * height;
    const volumetricWeight = volume * 167; // 標準航空貨物変換
    
    // 実際の重量か容積重量か、高い方で課金
    const billableWeight = Math.max(weight, volumetricWeight);
    
    const weightCost = billableWeight * ratePerKg;
    const volumeCost = volume * ratePerM3;
    const totalCost = Math.max(weightCost, volumeCost);
    
    return {
      actualWeight: weight,
      volumetricWeight: volumetricWeight.toFixed(2),
      billableWeight: billableWeight.toFixed(2),
      weightCost: weightCost.toFixed(2),
      volumeCost: volumeCost.toFixed(2),
      totalCost: totalCost.toFixed(2),
      chargedBy: weightCost > volumeCost ? '重量' : '体積'
    };
  }
}

// 使用例
const shippingCalc = new ShippingCalculator();
const containerFit = shippingCalc.calculateContainerFit(0.5, 0.4, 0.3, '20ft'); // 0.5x0.4x0.3mのアイテムを20ftコンテナに
console.log('コンテナ適合情報:', containerFit);

const shippingCost = shippingCalc.calculateShippingCost(0.5, 0.4, 0.3, 10, 2.5, 150); // 10kgアイテム、$2.5/kg、$150/m³
console.log('輸送コスト:', shippingCost);

📐 数式

基本公式

  • 体積: V = l × w × h
  • 表面積: S = 2(lw + lh + wh)
  • 底面積: S_base = l × w
  • 空間対角線: d = √(l² + w² + h²)

単位変換

長さ単位 変換係数 体積単位 変換係数
1 m 1 1 m³ 1
1 cm 0.01 1 cm³ 0.000001
1 mm 0.001 1 mm³ 0.000000001
1 km 1000 1 km³ 1000000000
1 in 0.0254 1 in³ 0.000016387
1 ft 0.3048 1 ft³ 0.028317

🔧 使用のコツ

  1. 正確な測定: 長さ、幅、高さの正確な測定を確保
  2. 単位の一貫性: 混合単位もサポートしていますが、一貫した単位使用を推奨
  3. 実用応用: 材料厚さ、安全係数、その他実世界要因を考慮
  4. 履歴記録: 計算履歴を使用して異なる解決策を比較
  5. 可視化: 3D表示で直方体形状を直感的に理解

🎓 学習ポイント

  • 直方体の幾何学的特性を理解
  • 体積と面積の計算方法を習得
  • 単位変換の重要性を学習
  • 実用的な工学応用を理解
  • 空間想像力を養成

この直方体体積計算ツールは、単なる計算ツールだけでなく、立体幾何学と工学応用を学ぶための優れたヘルパーです!