getShapeParams Переписать так:
function getShapeParams() {
var shapeParams = {};
shapeParams = {
radius: document.getElementsByClassName('radius')[0].value.toString(),
x1Crd: document.getElementsByClassName('circle-x1-crd')[0].value.toString(),
x2Crd: document.getElementsByClassName('circle-y2-crd')[0].value.toString()
};
console.log(shapeParams.radius);
return shapeParams;
}
а во второй ф-ции:
getShapeParams(shapeParams);
заменить на
var shapeParams = getShapeParams();
и все должно работать.
Ну или обявить обект shapeParams вне функций. тогда получиться так:
var shapeParams = {};
function getShapeParams() {
shapeParams = {
radius: document.getElementsByClassName('radius')[0].value.toString(),
x1Crd: document.getElementsByClassName('circle-x1-crd')[0].value.toString(),
x2Crd: document.getElementsByClassName('circle-y2-crd')[0].value.toString()
};
console.log(shapeParams.radius);
}
function circle() {
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
getShapeParams();
this.radius = shapeParams.radius;
this.x1Crd = shapeParams.x1Crd;
this.x2Crd = shapeParams.x2Crd;
context.clearRect(0, 0, canvas.width, canvas.height);
context.beginPath();
context.arc(x1Crd, x2Crd, radius, 0, Math.PI*2, false);
context.fillStyle = 'red';
context.fill();
context.lineWidth = 1;
context.strokeStyle = 'red';
context.stroke();
}
circle();
но первый метод полутше будет.