QR-Code

Letzte Änderung: 15.06.2016

Umgesetzte Punkte

  • Canvas 2D

Dieses Projekt ist noch in Entwicklung und wurde zurückgestellt.

QR-Code

Generierung eines QR-Code

Leider unterstützt Ihr Browser das canvas-Element nicht.


<canvas id="qrcodearea" height=50 width=50></canvas>
<script>
function showInHtml ()
{
  var errorcorrection = document.getElementById("errorcorrection").value;

  createCode(1);
  paintCode(document.getElementById("qrcarea"));
}
document.getElementById("create").onclick = showInHtml;
</script>
  

qrcode.js

download
/**
 * @description Erzeugen eines QR Codes
 *
 * @author Thomas Thielemann www.th-thielemann.de
 */

var m_resultArray;      //!< QR Code
var m_modules;          //!< Modules per side





/**
 * Werte zurücksetzen
 */
function init()
{
    //
    m_modules =
    initArray(modules)
}

function initArray(modules)
{
    m_resultArray = new Array(modules);
    for (var row = 0; row < modules; ++row) {
        m_resultArray[row] = new Array(modules);
        for (var col = 0; col < modules; ++col) {
            m_resultArray[row][col] = 0;
        }
    }
}

/**
 * Spielfeld zeichnen
 * @param element Canvas Element
 */
function paintQrc(element)
{
    console.log("paintArea called");

    if (! element) {
        console.log("Context 2d is not supported.");
        return;
    }
    var ctx = element.getContext('2d');

    var modules = 177;
    var pixelPerModule = 3
    element.height = modules * pixelPerModule;
    element.width = modules * pixelPerModule;
    var size = element.height / modules;
    for (var row = 0; row < modules; ++row) {
        for (var col = 0; col < modules; ++col) {
            ctx.fillStyle = ((row + col) % 2) === 0 ? "#000000" : "#FFFFFF";
            ctx.fillRect(size * col, size * row, size, size);
        }
    }
}

/**
 * Überprüfe die Position der Dame
 * @param queenIndex Index der Dame innerhalb von m_queens
 * @return Position ist gültig
 */
function checkQueen(queenIndex)
{
    var queenColumn = queenIndex;
    var queenRow = m_queens[queenIndex];

    // Steht in den Feldern links von der Dame eine andere Dame?
    for (var row = 0; row < queenColumn; ++row) {
        if (m_queens[row] === queenRow) {
            return false;
        }
    }
    // Steht in den Feldern diagonal nach links unten von der Dame eine andere Dame?
    while (0 <= queenColumn && 0 <= queenRow) {
        --queenColumn;
        --queenRow;
        if (m_queens[queenColumn] === queenRow) {
            return false;
        }
    }

    // Steht in den Feldern diagonal nach links oben von der Dame eine andere Dame?
    queenColumn = queenIndex;
    queenRow = m_queens[queenIndex];
    while (0 <= queenColumn && queenRow < 8) {
        --queenColumn;
        ++queenRow;
        if (m_queens[queenColumn] === queenRow) {
            return false;
        }
    }
    return true;
}




© 2003-2017 th-thielemann.de