Hello! We’ve noticed that you haven’t made any recent edits on your wiki this year. This is a notice that your wiki is eligible for removal. Click here to learn more about the criteria for wiki removal.
Этот пример демонстрирует, как можно нарисовать график функции на языке JavaFX Script
Определение функции[]
function f1(x:Number):Number{
return 6 * Math.exp( -(x * x ) / 2 );
};
function f2(x:Number):Number{
var n = 10;
var sum = 0.0;
var sign = 1.0;
for(i in [1..n]){
sign = -sign;
sum += ((1 - sign) * Math.sin(i * x)) / i;
}
return sum;
};
Изображение функции[]
class FuncGraph extends CustomNode{
var scale:Number = 1;
var xMin: Number;
var xMax: Number;
var dx: Number = 1;
var color: Color;
var func: function(a: Number):Number;
override function create():Node{
var n = (xMax - xMin) / dx;
Group{
content: Polyline{
stroke: color
points: for(i in [0..n]) [(xMin + i * dx) * scale, - func(xMin + i * dx) * scale]
}
}
}
}
Изображение координат[]
class Coordinats extends CustomNode{
var xMin: Number;
var xMax: Number;
var scale: Number;
var color: Color = Color.GREEN;
override function create():Node{
var min = xMin * scale;
var max = xMax * scale;
var h = 7;
Group{
content:[
Line{ startX: min endX: max stroke: color },
Line{ startX: max endX: max - h endY: h stroke: color },
Line{ startX: max endX: max - h endY: -h stroke: color },
Line{ startY: min endY: max stroke: color },
Line{ startY: min endX: -h endY: min + h stroke: color },
Line{ startY: min endX: h endY: min + h stroke: color },
Group{
content: [
Text{ x: min y: -3 content: "{xMin}" },
Text{ x: max y: -3 content: "{xMax}"}
]
}
]
}
}
}
Главное окно приложения[]
var w = 300;
var h = 300;
var xMin = -4;
var xMax = 4;
var dx = 0.1;
var scale = 20;
Stage {
title: "Function Graph"
width: 300
height: 300
scene: Scene{
content: Group{
transforms: Translate.translate(w/2, h/2)
content: [
Coordinats{
xMin: xMin
xMax: xMax
scale: scale
}, FuncGraph {
xMin: xMin
xMax: xMax
scale: scale
dx: dx
color: Color.DARKORANGE
func: f1
},FuncGraph {
xMin: xMin
xMax: xMax
scale: scale
dx: dx
color: Color.BLUE
func: f2
}
]
}
}
}
Полный пример[]
import javafx.scene.*;
import javafx.stage.*;
import javafx.scene.text.*;
import javafx.scene.paint.*;
import javafx.scene.shape.*;
import javafx.scene.transform.*;
import java.lang.Math;
function f1(x:Number):Number{
return 3 * Math.exp( -(x * x ) / 2 );
};
function f2(x:Number):Number{
var n = 10;
var sum = 0.0;
var sign = 1.0;
for(i in [1..n]){
sign = -sign;
sum += ((1 - sign) * Math.sin(i * x)) / i;
}
return sum;
};
class FuncGraph extends CustomNode{
var scale:Number = 1;
var xMin: Number;
var xMax: Number;
var dx: Number = 1;
var color: Color;
var func: function(a: Number):Number;
override function create():Node{
var n = (xMax - xMin) / dx;
Group{
content: Polyline{
stroke: color
points: for(i in [0..n]) [(xMin + i * dx) * scale, - func(xMin + i * dx) * scale]
}
}
}
}
class Coordinats extends CustomNode{
var xMin: Number;
var xMax: Number;
var scale: Number;
var color: Color = Color.GREEN;
override function create():Node{
var min = xMin * scale;
var max = xMax * scale;
var h = 7;
Group{
content:[
Line{ startX: min endX: max stroke: color },
Line{ startX: max endX: max - h endY: h stroke: color },
Line{ startX: max endX: max - h endY: -h stroke: color },
Line{ startY: min endY: max stroke: color },
Line{ startY: min endX: -h endY: min + h stroke: color },
Line{ startY: min endX: h endY: min + h stroke: color },
Group{
content: [
Text{ x: min y: -3 content: "{xMin}" },
Text{ x: max y: -3 content: "{xMax}"}
]
}
]
}
}
}
var w = 300;
var h = 300;
var xMin = -4;
var xMax = 4;
var dx = 0.1;
var scale = 20;
Stage {
title: "Function Graph"
width: 300
height: 300
scene: Scene{
content: Group{
transforms: Translate.translate(w/2, h/2)
content: [
Coordinats{
xMin: xMin
xMax: xMax
scale: scale
}, FuncGraph {
xMin: xMin
xMax: xMax
scale: scale
dx: dx
color: Color.DARKORANGE
func: f1
},FuncGraph {
xMin: xMin
xMax: xMax
scale: scale
dx: dx
color: Color.BLUE
func: f2
}
]
}
}
}