[SOLVED] 代写 Java javaFx junit graph 1.使用javafx.scene.shape.polygon类,写一个类upload.java,最终结果将显示如下图所示的上传图标(图1)。

30 $

File Name: 代写_Java_javaFx_junit_graph_1.使用javafx.scene.shape.polygon类,写一个类upload.java,最终结果将显示如下图所示的上传图标(图1)。.zip
File Size: 1497.78 KB

SKU: 6674044535 Category: Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Or Upload Your Assignment Here:


1.使用javafx.scene.shape.polygon类,写一个类upload.java,最终结果将显示如下图所示的上传图标(图1)。

2. (除代码外另需写一份命名为ExpenditureTests的junit test)编写一个最小类Expenditure.java,它用两个字段变量private String description和private int value表示支出。编写构造函数和get函数。
注意,可以通过Java API类java.util.Arrays中的sort方法将Expenditure类型的数组从最大到最小进行排序,如下所示:
Arrays.sort(expenditures,(Expenditure exp1,Expenditure exp2)-> exp2.getValue( )-exp1.getValue());
假设一家公司使用“Expenditure”类型的数组来表示其所有支出。必须编写一个Waffle.java类才能将支出表示为Waffle图表。对于一个数组已经达到最多元素,请显示所有元素(从最大到最小)。对于超过最大元素数的数组,仅显示前面较大的(最大-1)个元素(从最大到最小),并将其他元素累加为条目“other”。例如,最大值= 8;费用图表下方的支出和外观应类似于下方(图2)。

3. (除代码外另需写一份命名为PieTests的junit test)与练习2类似,本题用饼图表示支出。 编写一个Pie.java类,以表示相应的Expenditure类型数组中的所有支出。 编写方法public void start(Stage stage)throws Exception,该异常将支出显示为饼图,并在饼图的相应部分旁边添加描述。
注意,说明不应与饼图本身重叠。 不要使用javafx.scence.shape.PieChart类,只能使用javafx.scene.shape.Circle和javafx.scene.shape.Line。 此外还需要javafx.scence.text.Text。
例如,使用练习2中的值,饼图应看起来像左边的图(图3)。

4. (debug)在下框上提供的代码DisplayFunctionArea.java应该显示函数和x轴之间的区域。 例如,对于方法调用displayFunctionArea(x-> x * x * x-8 * x * x,-2,9,500); 该区域应显示如左下图(图4)。 但是,实际显示不正确,显示不正确如右下图(图6)。 整个区域在左上角被压缩,x轴不显示。 总结代码中的所有问题,并写出正确显示该区域和x轴的更正版本,在注释中注明原代码的问题和更正原因。

import java.util.function.Function;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.Group;
import javafx.scene.paint.Color;
import javafx.scene.shape.Line;
import javafx.scene.shape.Polygon;
import javafx.scene.shape.Polyline;

/**
* 此类用于显示非恒定函数,例如从x到x * x,函数图和x轴之间的区域处于给定的间隔[a,b]中。
* 通过绘制x轴和y轴以及从函数的起点(a,f(a))和终点(b,f(b))定义折线来完成, 然后显示填充颜色并适当缩放的相应多边形。
*/

public class DisplayFunctionArea extends Application {

/**
* X_SIZE是面板的宽度,以像素为单位。 设置为600。
*/

public static final int X_SIZE = 600;

/**
* Y_SIZE是面板的长度,以像素为单位。 设置为600。
*/

public static final int Y_SIZE = 600;

/**
* f是要显示的函数。 我们将其作为全局变量引入,以便在start方法中使用它,但要在main方法中定义它。
*/

private static Function f;

/**
* a是要显示函数的间隔的左区间。我们将其作为全局变量引入,以便在start方法中使用它,但要在main方法中定义它。
*/

private static double a;

/**
* b是要显示函数的间隔的右区间。我们将其作为全局变量引入,以便在start方法中使用它,但要在main方法中定义它。
*/

private static double b;
/**
* min是区间[a,b]中f的最小值的近似值。它是作为全局变量引入的,因此不必重新计算。
*/

private static double min;

/**
* max是区间[a,b]中f的最大值的近似值。它是作为全局变量引入的,因此不必重新计算。
*/

private static double max;

/**
* n是最小单位个数,区间[a,b]将被细分为n个部分,并且每个函数将用直线近似。
*/

private static int n;

/**
* The polyline will be the approximation of the function and be displayed.
*/
private static Polyline polyline;

/**
* polyline折线将作为函数的近似值并显示出来。
*/

private static Polygon polygon;

/**
* polygon多边形将是函数与x轴之间的区域。
*/

public static Color areaColour = Color.YELLOW;

/**
* 该方法在区间[a,b]中生成对应于函数f与x轴之间的区域的多边形。
*
* @param f 要绘制的函数。
* @param n 要绘制的等距间隔数。
* @param a 间隔中的最小x值。
* @param b 在区间内的最大X值。
* @return 返回对应于函数f和x轴在[a , b]区间n个区域的多边形。
*/

public static Polygon functionToPolygon(Function f, int n, double a, double b) {
if (a >= b) {
throw new IllegalArgumentException();
} else {
double[] points = new double[2 * (n + 1) + 4];
double x, y;
/*
* 循环:将x和y值添加到a、b和n-1之间等距值的相应数组中。 (x_i,y_i)值成对添加到点数组中。
*/

for (int i = 0; i <= n; i++) {x = a + (b – a) * i / n;y = f.apply(x);points[2 * i] = x;points[2 * i + 1] = y;}/* 画图 */return new Polygon(points);}}/** * 该方法生成与区间[a,b]中函数f的图形相对应的多段线 ** @param f 要绘制的函数。 * @param n 要绘制的等距间隔数。 * @param a 间隔中的最小x值。 * @param b 在区间内的最大X值。 * @return 返回在区间[a,b]上与函数f对应的n个多段线。 */public static Polyline functionToPolyline(Function f, int n, double a, double b) {
if (a >= b) {
throw new IllegalArgumentException();
} else {
double[] points = new double[2 * (n + 1)];
double x, y;
/*
* 循环:将x和y值添加到a、b和n-1之间等距值的相应数组中。 (x_i,y_i)值成对添加到点数组中。
*/

for (int i = 0; i <= n; i++) {x = a + (b – a) * i / n;y = f.apply(x);points[2 * i] = x;points[2 * i + 1] = y;}/* 画图 */Polyline result = new Polyline(points);result.setStrokeWidth(3);return result;}}/** * 该方法绘制x轴,如果0是在区间[min,max ]。 假定函数不是常数。 @ param root是要添加X轴的组。 */public static void drawXAxis(Group root) {if (min < 0 && 0 < max) {Line line = new Line(0, (max – 0) * Y_SIZE / (max – min), X_SIZE, (max – 0) * Y_SIZE / (max – min));line.setStrokeWidth(2);root.getChildren().add(line);}}/** * 该方法绘制y轴,如果0在区间[a,b]中。 ** @param root 是要添加y轴的组。 */public static void drawYAxis(Group root) {if (a < 0 && 0 < b) {Line line = new Line((b – 0) * X_SIZE / (b – a), 0, (b – 0) * X_SIZE / (b – a), Y_SIZE);line.setStrokeWidth(2);root.getChildren().add(line);}}/** * @param stage 准备要显示的窗口。 */@Overridepublic void start(Stage stage) throws Exception {// 创建一个组(场景图),将线作为单个元素。Group root = new Group();root.getChildren().add(polyline);root.getChildren().add(polygon);drawXAxis(root);drawYAxis(root);// 这个场景只有一组。Scene scene = new Scene(root, X_SIZE, Y_SIZE);// 给舞台(窗口)一个标题并添加场景。stage.setTitle(“Function Graph”);stage.setScene(scene);stage.show();}/** * 该方法为静态变量a、b、n和多段线提供值。 ** @param f要显示的函数。 * @param numberOfValues 多段线上的点数。 * @param left 离开了要显示的间隔的左边框。 * @param right显示间隔的右边框。 */public static void displayFunctionArea(Function f, double left, double right, int numberOfValues) {
a = left;
b = right;
n = numberOfValues;
polyline = functionToPolyline(f, numberOfValues, left, right);
polygon = functionToPolygon(f, numberOfValues, left, right);
polygon.setFill(areaColour);
}

/*
* 启动应用程序的主要方法。
*/
public static void main(String[] args) {
displayFunctionArea(x -> x * x * x – 8 * x * x, -2, 9, 500);
launch(args);
}
}

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[SOLVED] 代写 Java javaFx junit graph 1.使用javafx.scene.shape.polygon类,写一个类upload.java,最终结果将显示如下图所示的上传图标(图1)。
30 $