Question: we a java program that draw the prophet dome, and draw a leaf, by using hermite: package org.example; import javax.swing. * ; import java.util. *

we a java program that draw the prophet dome, and draw a leaf, by using hermite: package org.example;
import javax.swing.*;
import java.util.*;
import java.awt.*;
import java.awt.image.*;
class Hermite extends JApplet {
BufferedImage image = new BufferedImage(600,600, BufferedImage.TYPE_INT_ARGB);
WritableRaster raster = image.getRaster();
private double controlPoints[][];
private double steps;
Hermite(double controPoints[][], int steps){
this.controlPoints = controPoints;
this.steps = steps;
}
@Override
public void init(){
// TODO start asynchronous download of heavy resources
setBackground(Color.YELLOW);
setSize(800,600);
repaint();
}
// TODO overwrite start(), stop() and destroy() methods
int[] computePoint(float u){
//hermite blending functions
float h0, h1, h2, h3;
h0=2* u * u * u -3* u * u +1;
h1=-2* u * u * u +3* u * u;
h2= u * u * u -2* u * u + u;
h3= u * u * u - u * u;
int ptx =(int)(h0* controlPoints[0][0]+ h1* controlPoints[1][0]+ h2* controlPoints[2][0]+ h3* controlPoints[3][0]);
int pty =(int)(h0* controlPoints[0][1]+ h1* controlPoints[1][1]+ h2* controlPoints[2][1]+ h3* controlPoints[3][1]);
int pts[]={ptx, pty};
return pts;
}
public void paint(Graphics g){
int prevPointx =0;
int prevPointy =0;
int[] color ={255,0,0,255};
for (int i =0; i steps; i++){
int[] pts = computePoint(i /(float) steps);
int x = pts[0];
int y = pts[1];
// Draw the line from previous end point to the current end point
if (i !=0)
g.drawLine(prevPointx,
prevPointy, x, y);
prevPointx = x;
prevPointy = y;
raster.setPixel(x, y, color);
}
g.drawImage(image,0,0, null);
}
}
public class Main {
public static void main(String[] args){
Scanner input = new java.util.Scanner(System.in);
double points[][]= new double[4][2];
System.out.println("Enter p1, p2, p1', p2' respectively");
for (int i =0; i points.length; i++){
points[i][0]= input.nextInt();
points[i][1]= input.nextInt();
}
System.out.print("Enter how many steps to do: ");
int steps = input.nextInt();
JFrame frame = new JFrame("Hermite splines");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Hermite curve = new Hermite(points, steps);
curve.setPreferredSize(new Dimension(600,600));
frame.add(curve);
frame.pack();
frame.setVisible(true);
}
}
we a java program that draw the prophet dome, and

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!