<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Optimal Print Sharpening Radius Calculator</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      background-color: #f2f2f2;
      padding: 20px;
    }
    .container {
      max-width: 600px;
      margin: auto;
      background: #fff;
      padding: 20px;
      border-radius: 8px;
      box-shadow: 0 0 10px rgba(0,0,0,0.1);
    }
    h1 {
      text-align: left;
      margin-bottom: 20px;
    }
    .form-group {
      margin-bottom: 15px;
    }
    label {
      display: block;
      margin-bottom: 5px;
      font-weight: bold;
    }
    select, input[type="number"] {
      width: 100%;
      padding: 8px;
      font-size: 16px;
      border: 1px solid #ccc;
      border-radius: 4px;
      box-sizing: border-box;
    }
    button {
      width: 100%;
      padding: 10px;
      font-size: 18px;
      color: #fff;
      background-color: #007BFF;
      border: none;
      border-radius: 4px;
      cursor: pointer;
    }
    button:hover {
      background-color: #0056b3;
    }
    .output {
      margin-top: 20px;
      padding: 15px;
      background-color: #e9e9e9;
      border-radius: 4px;
      font-size: 18px;
      text-align: center;
    }
  </style>
</head>
<body>
  <div class="container">
    <h1>Optimal Print Sharpening Radius Calculator</h1>
    
    <!-- Viewing Distance Selection -->
    <div class="form-group">
      <label for="viewingDistance">Viewing Distance (ft)</label>
      <select id="viewingDistance">
        <option value="0.5">0.5 ft (0.15 m)</option>
        <option value="1">1 ft (0.30 m)</option>
        <option value="1.5">1.5 ft (0.46 m)</option>
        <option value="2">2 ft (0.61 m)</option>
        <option value="2.5">2.5 ft (0.76 m)</option>
        <option value="3">3 ft (0.91 m)</option>
        <option value="3.5">3.5 ft (1.07 m)</option>
        <option value="4">4 ft (1.22 m)</option>
        <option value="4.5">4.5 ft (1.37 m)</option>
        <option value="5">5 ft (1.52 m)</option>
        <option value="5.5">5.5 ft (1.68 m)</option>
        <option value="6">6 ft (1.83 m)</option>
        <option value="6.5">6.5 ft (1.98 m)</option>
        <option value="7">7 ft (2.13 m)</option>
        <option value="7.5">7.5 ft (2.29 m)</option>
        <option value="8">8 ft (2.44 m)</option>
        <option value="8.5">8.5 ft (2.59 m)</option>
        <option value="9">9 ft (2.74 m)</option>
        <option value="9.5">9.5 ft (2.90 m)</option>
        <option value="10">10 ft (3.05 m)</option>
      </select>
    </div>
    
    <!-- Print Resolution (PPI) Input -->
    <div class="form-group">
      <label for="ppi">Print Resolution (PPI)</label>
      <input type="number" id="ppi" value="300" min="1" max="999" oninput="if(this.value.length > 3) this.value = this.value.slice(0, 3)">
    </div>
    
    <!-- Sharpening Radius Factor Drop-down -->
    <div class="form-group">
      <label for="radiusFactor">Sharpening Radius Factor</label>
      <select id="radiusFactor">
        <option value="0.8">Minimal (0.8)</option>
        <option value="1.0" selected>Standard (1.0)</option>
        <option value="1.2">Enhanced (1.2)</option>
        <option value="1.5">Aggressive (1.5)</option>
        <option value="2.0">Maximum (2.0)</option>
      </select>
    </div>
    
    <!-- Calculate Button -->
    <button id="calculate">Calculate</button>
    
    <!-- Output Display -->
    <div class="output" id="output">
      Optimal Print Sharpening Radius (pixels):
    </div>
  </div>

  <script>
    document.getElementById('calculate').addEventListener('click', function() {
      // Retrieve and convert viewing distance from feet to inches.
      var viewingDistanceFt = parseFloat(document.getElementById('viewingDistance').value);
      var viewingDistanceInches = viewingDistanceFt * 12;
      
      // Get the print resolution (PPI).
      var ppi = parseFloat(document.getElementById('ppi').value);
      
      // Get the Sharpening Radius Factor from the drop-down.
      var factor = parseFloat(document.getElementById('radiusFactor').value);
      
      // Apply the sharpening formula:
      // R = factor * (PPI / 300) * sqrt(viewingDistanceInches / 12)
      var R = factor * (ppi / 300) * Math.sqrt(viewingDistanceInches / 12);
      
      // Round R to one decimal place.
      R = Math.round(R * 10) / 10;
      
      // Output the result.
      document.getElementById('output').innerHTML = "Optimal Print Sharpening Radius (pixels): " + R;
    });
  </script>
</body>
</html>
Run Pen

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.