Moving last methods from LogGraphCanvas to Canvas JS module.
This commit is contained in:
parent
a2fa16949a
commit
d4e97f2860
3 changed files with 15 additions and 49 deletions
|
@ -168,45 +168,4 @@ Canvas {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
\qmlmethod double LogGraphCanvas::x2px(double x)
|
|
||||||
Converts an \c x coordinate to it's relative position on the canvas.
|
|
||||||
It supports both logarithmic and non logarithmic scale depending on the currently selected mode.
|
|
||||||
*/
|
|
||||||
function x2px(x) {
|
|
||||||
if(logscalex) {
|
|
||||||
var logxmin = Math.log(xmin)
|
|
||||||
return (Math.log(x)-logxmin)*xzoom
|
|
||||||
} else return (x - xmin)*xzoom
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\qmlmethod double LogGraphCanvas::y2px(double y)
|
|
||||||
Converts an \c y coordinate to it's relative position on the canvas.
|
|
||||||
The y axis not supporting logarithmic scale, it only support linear convertion.
|
|
||||||
*/
|
|
||||||
function y2px(y) {
|
|
||||||
return (ymax-y)*yzoom
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\qmlmethod double LogGraphCanvas::px2x(double px)
|
|
||||||
Converts an x \c px position on the canvas to it's corresponding coordinate on the plot.
|
|
||||||
It supports both logarithmic and non logarithmic scale depending on the currently selected mode.
|
|
||||||
*/
|
|
||||||
function px2x(px) {
|
|
||||||
if(logscalex) {
|
|
||||||
return Math.exp(px/xzoom+Math.log(xmin))
|
|
||||||
} else return (px/xzoom+xmin)
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\qmlmethod double LogGraphCanvas::px2x(double px)
|
|
||||||
Converts an x \c px position on the canvas to it's corresponding coordinate on the plot.
|
|
||||||
It supports both logarithmic and non logarithmic scale depending on the currently selected mode.
|
|
||||||
*/
|
|
||||||
function px2y(px) {
|
|
||||||
return -(px/yzoom-ymax)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -227,10 +227,10 @@ ScrollView {
|
||||||
label: qsTr("Max X")
|
label: qsTr("Max X")
|
||||||
icon: "settings/xmax.svg"
|
icon: "settings/xmax.svg"
|
||||||
width: settings.settingWidth
|
width: settings.settingWidth
|
||||||
defValue: canvas.px2x(canvas.width).toFixed(2)
|
defValue: Modules.Canvas.px2x(canvas.width).toFixed(2)
|
||||||
onChanged: function(xvaluemax) {
|
onChanged: function(xvaluemax) {
|
||||||
if(xvaluemax > settings.xmin) {
|
if(xvaluemax > settings.xmin) {
|
||||||
settings.xzoom = settings.xzoom * canvas.width/(canvas.x2px(xvaluemax)) // Adjusting zoom to fit. = (end)/(px of current point)
|
settings.xzoom = settings.xzoom * canvas.width/(Modules.Canvas.x2px(xvaluemax)) // Adjusting zoom to fit. = (end)/(px of current point)
|
||||||
settings.changed()
|
settings.changed()
|
||||||
} else {
|
} else {
|
||||||
alert.show("Maximum x value must be superior to minimum.")
|
alert.show("Maximum x value must be superior to minimum.")
|
||||||
|
@ -246,10 +246,10 @@ ScrollView {
|
||||||
label: qsTr("Min Y")
|
label: qsTr("Min Y")
|
||||||
icon: "settings/ymin.svg"
|
icon: "settings/ymin.svg"
|
||||||
width: settings.settingWidth
|
width: settings.settingWidth
|
||||||
defValue: canvas.px2y(canvas.height).toFixed(2)
|
defValue: Modules.Canvas.px2y(canvas.height).toFixed(2)
|
||||||
onChanged: function(yvaluemin) {
|
onChanged: function(yvaluemin) {
|
||||||
if(yvaluemin < settings.ymax) {
|
if(yvaluemin < settings.ymax) {
|
||||||
settings.yzoom = settings.yzoom * canvas.height/(canvas.y2px(yvaluemin)) // Adjusting zoom to fit. = (end)/(px of current point)
|
settings.yzoom = settings.yzoom * canvas.height/(Modules.Canvas.y2px(yvaluemin)) // Adjusting zoom to fit. = (end)/(px of current point)
|
||||||
settings.changed()
|
settings.changed()
|
||||||
} else {
|
} else {
|
||||||
alert.show("Minimum y value must be inferior to maximum.")
|
alert.show("Minimum y value must be inferior to maximum.")
|
||||||
|
|
|
@ -388,7 +388,11 @@ class CanvasAPI extends Module {
|
||||||
* @returns {number}
|
* @returns {number}
|
||||||
*/
|
*/
|
||||||
x2px(x) {
|
x2px(x) {
|
||||||
return this._canvas.x2px(x)
|
if(this.logscalex) {
|
||||||
|
const logxmin = Math.log(this.xmin)
|
||||||
|
return (Math.log(x)-logxmin)*this.xzoom
|
||||||
|
} else
|
||||||
|
return (x - this.xmin)*this.xzoom
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -398,7 +402,7 @@ class CanvasAPI extends Module {
|
||||||
* @returns {number}
|
* @returns {number}
|
||||||
*/
|
*/
|
||||||
y2px(y) {
|
y2px(y) {
|
||||||
return this._canvas.y2px(y)
|
return (this.ymax - y) * this.yzoom
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -408,7 +412,10 @@ class CanvasAPI extends Module {
|
||||||
* @returns {number}
|
* @returns {number}
|
||||||
*/
|
*/
|
||||||
px2x(px) {
|
px2x(px) {
|
||||||
return this._canvas.px2x(px)
|
if(this.logscalex) {
|
||||||
|
return Math.exp(px/this.xzoom+Math.log(this.xmin))
|
||||||
|
} else
|
||||||
|
return (px/this.xzoom+this.xmin)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -418,7 +425,7 @@ class CanvasAPI extends Module {
|
||||||
* @returns {number}
|
* @returns {number}
|
||||||
*/
|
*/
|
||||||
px2y(px) {
|
px2y(px) {
|
||||||
return this._canvas.px2y(px)
|
return -(px/this.yzoom-this.ymax)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue