Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-06-2007, 18:59   #1
di@!
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1729
[C/C++/Java] Codice per curve B-Spline e Bezier

Ciao, per un progetto all'uni ho bisogno di implementare una curva B-Spline e di Bezier mediante un qualsiasi linguaggio tra C/C++/Java. Abbiamo già calcolato tutti i punti per i quali passa la curva, il problema ora è che non abbiamo mai fatto prima d'ora roba grafica all'uni, e quindi siamo totalmente fermi. In giro ho trovato codice per eventuali curve ma al momento della compilazione mancano sempre dei file da includere e, visto che siamo totalmente ignoranti in materia, di un codice senza i sorgenti/librerie non ce ne facciamo praticamente nulla...qualcuno sa dove trovare (o possiede) un codice senza questo tipo di problemi (ovvero compilabile) che può aiutarci a disegnare ste benedette curve?

In un thread precedente un utente ha segnalato di andare a vedere delel librerie API di non so cosa linkando 2 pagine e basta...ecco, questo è un esempio di risposta che non c'aiuta, perchè non sappiamo cosa farci Se qualcuno può aiutarci magari con un codice, può spiegare anche come funziona? Se è necessario installare pacchetti di librerie aggiuntive ecc?

Grazie
di@! è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2007, 20:31   #2
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Se avete già la funzione e vi manca solo l'ultimo passo, cioè qualcosa che effettivamente disegni dei punti sullo schermo, allora una soluzione in Java potrebbe essere:

Codice:
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;

public class Main {
	public static void main(String[] args) {
		/** Questo crea e lancia la finestra principale ed è necessario
		per questioni di concorrenza del framework Swing */
		SwingUtilities.invokeLater(new Runnable() { public void run() {
			new Main().showWindow();
		}});
	}
	
	/* Questa è la tela su cui si disegna */
	private final JCanvas CANVAS = new JCanvas(512, 512);
	
	/** Questo metodo crea l'interfaccia utente e la apre sullo schermo */
	private void showWindow() {
		//Crea un pulsante
		JButton createCurveButton = new JButton("Crea curva");
		//Aggiunge al pulsante un componente che cattura l'interazione utente
		createCurveButton.addActionListener(createCurveListener);
		//Crea un contenitore per il pulsante
		JPanel buttonPanel = new JPanel();
		//Aggiunge il pulsante al contenitore
		buttonPanel.add(createCurveButton);
		//Crea una finestra
		JFrame window = new JFrame("Titolo");
		//Quando l'utente chiude la finestra la finestra viene "distrutta"
		window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		//Aggiunge il componente-canvas alla finestra
		window.add(CANVAS);
		//Aggiunge il contenitore dei pulsanti alla finestra, a "SUD"
		window.add(buttonPanel, BorderLayout.SOUTH);
		//La finestra non è ridimensionabile
		window.setResizable(false);
		//La finestra assume una dimensione minima sufficiente a visualizzare
		//tutto il suo contenuto
		window.pack();
		//Proietta la finestra sullo schermo
		window.setVisible(true);
	}
	
	//Il metodo actionPerformed di questo oggetto ActionListener viene invocato
	//quando il pulsante creato nel metodo showWindow "rileva" che l'utente
	//l'ha premuto (col mouse, con la tastiera eccetera)
	private ActionListener createCurveListener = new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			//rinvia per maggiore chiarezza espositiva al metodo createCurve
			createCurve();
		}
	};
	
	//Questo metodo è invocato dal metodo actionPerformed dell'ActionListener
	//eccetera eccetera. Qui dentro ci potrebbe andare il metodo che crea
	//la curva
	private void createCurve() {
		CANVAS.clear();
		for(int x = 0, y = 0; x < 100; x++, y++) {
			CANVAS.drawPixel(x, y, Color.PINK);
		}
		for(int x = 100, y = 100; x < 200; x++) {
			CANVAS.drawPixel(x, y, Color.RED);
		}
		CANVAS.flush();
	}
}

//Dichiara un insieme di capacità necessarie e sufficienti al disegno "per pixel"
interface PixelPainter {
	/** Cancella tutto quello che è stato disegnato in precedenza */
	void clear();

	/** Colora il pixel di coordinate x, y */
	void drawPixel(int x, int y, Color c);
	
	/** Aggiorna lo stato del PixelPainter: i pixel disegnati con il metodo
	drawPixel appaiono sicuramente sullo schermo dopo l'invocazione di questo
	metodo. */
	void flush();
}

/** Un componente swing che è anche un PixelPainter */
class JCanvas extends JPanel implements PixelPainter {
	private BufferedImage buffer;
	private int width;
	private int height;

	public JCanvas(int width, int height) {
		this.width = width;
		this.height = height;
	}
	
	public void addNotify() {
		super.addNotify();
		createBuffer();
	}
	
	public Dimension getPreferredSize() {
		return new Dimension(width, height);
	}
	
	public void clear() {
		Graphics2D graphics = buffer.createGraphics();
		graphics.setColor(Color.WHITE);
		graphics.fillRect(0, 0, buffer.getWidth(), buffer.getHeight());
		graphics.dispose();
	}
	
	public void drawPixel(int x, int y, Color c) {
		if(x >= 0 && x < width && y >= 0 && y < height) {
			buffer.setRGB(x, y, c.getRGB());
		}
	}
	
	public void flush() {
		repaint();
	}
	
	protected void paintComponent(Graphics g) {
		super.paintComponent(g);
		if(buffer != null) {
			g.drawImage(buffer, 0, 0, null);
		}
	}
	
	private void createBuffer() {
		GraphicsConfiguration cfg = getGraphicsConfiguration();
		buffer = cfg.createCompatibleImage(width, height, Transparency.OPAQUE);
		clear();
	}
}
Tutto il codice qui sopra è destinato ad una singola unità di compilazione. Ci copi dentro il malloppo, lo chiami Main.java, una compilata (javac Main.java) e via (java Main).

Il succo è nel metodo "createCurve". Li si prende il CANVAS, che è un PixelDrawer e quindi fa tre cose:

clear() cancella tutto quanto
drawPixel(x, y, java.awt.Color) colora il pixel di coordinate x, y (origine in alto a sinistra sullo schermo)
flush() si assicura che tutti i pixel appena colorati appaiano sullo schermo.

E' una cosa del genere che state cercando?
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2007, 11:49   #3
di@!
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1729
si è esattamente questo, ti ringrazio...ora la proviamo e ti faccio sapere al più presto
di@! è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2007, 12:40   #4
di@!
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1729
il tuo programma compila, ma mi da un errore in fase di esecuzione:

Exception in thread "main" java.lang.NoClassDefFoundError: Main

cosa può essere?

cmq se hai msn e puoi addarmi lì facciamo prima

[email protected]

edit: mi sa che devo impostare la classpath

Ultima modifica di di@! : 02-06-2007 alle 12:46.
di@! è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2007, 12:47   #5
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Non occorre impostare il classpath. Controlla i nomi. Il file sorgente è Main.java con la M maiuscola?

Ps.: non uso msn, icq e altre stregonerie di quel tipo :
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2007, 12:54   #6
di@!
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1729
si ho digitato tutto correttamente

ho cercato in giro e quell'errore dicono che sia dovuto o alla sintassi sbagliata (come hai detto te, ma non è quello) oppure ad una sbagliata impostazione del classpath sotto le variabili d'ambiente (e io nn ce l'ho proprio impostato per java)
di@! è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2007, 12:59   #7
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Controlla che la cartella di lavoro (quella da cui lanci il comando java) sia la stessa in cui si trovano i file .class generati dalla compilazione con javac.

Se è già così allora prova a lanciare il programma con:

java -cp . Main
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2007, 13:08   #8
di@!
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1729
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi

Se è già così allora prova a lanciare il programma con:

java -cp . Main
Così funziona, grande

Come mai, cosa fa quel comando?
di@! è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2007, 13:16   #9
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
-cp, che equivale a -classpath, è un'opzione del comando java che serve a specificare da dove saranno prelevati i file necessari all'esecuzione del programma. Il punto (.) significa "la cartella di lavoro" ed è quella da cui è lanciato il programma java.exe.

Il problema è che la cartella di lavoro dovrebbe essere già inclusa tra quelle che il programma java.exe visiona al fine di trovare i file che gli servono.

Prova anche a controllare se per caso tu non abbia tra le variabili d'ambiente una variabile di nome CLASSPATH. Se c'è, fulminala.

Altrimenti dovresti provare a reinstallre la piattaforma java e vedere se l'intoppo si risolve.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!

Ultima modifica di PGI-Bis : 02-06-2007 alle 13:17. Motivo: prova a controlla...
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2007, 13:27   #10
di@!
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1729
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
-cp, che equivale a -classpath, è un'opzione del comando java che serve a specificare da dove saranno prelevati i file necessari all'esecuzione del programma. Il punto (.) significa "la cartella di lavoro" ed è quella da cui è lanciato il programma java.exe.

Il problema è che la cartella di lavoro dovrebbe essere già inclusa tra quelle che il programma java.exe visiona al fine di trovare i file che gli servono.

Prova anche a controllare se per caso tu non abbia tra le variabili d'ambiente una variabile di nome CLASSPATH. Se c'è, fulminala.

Altrimenti dovresti provare a reinstallre la piattaforma java e vedere se l'intoppo si risolve.
si ce l'ho classpath tra le variabili d'ambiente, ma c'ho altra roba lì che mi serve (ad esempio per il server tomcat) e nn posso fulminarla

senti un'ultima cosa...con questa funzione che mi hai passato, basta che modifico i punti dove passa la curva? nel nostro progetto abbiamo già trovato i punti della curva di bezier e b-spline, dunque nn c'è un codice per disegnare una curva b-spline o di bezier ma c'è un codice generale per disegnare una curva, e quello che cambia sono solo i punti trovati con gli algoritmi di bezier e b-spline? (nn so se mi sono spiegato)
di@! è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2007, 13:51   #11
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Là dentro c'è solo una cosa che permette di colorare dei pixel. La pressione del pulsante causa l'esecuzione del contenuto del metodo drawCurve.

Cosa disegni dipende da te. Ad esempio, supponiamo di voler disegnare un cerchio (con un algoritmo non DDA). Prendi il metodo createCurve lo svuoti e ci scrivi dentro:

Codice:
		CANVAS.clear();
		double ray = 100;
		double xc = 200;
		double yc = 200;
		double da = 0.0001;
		double a = 0;
		while(a < 2 * Math.PI) {
			double x = Math.cos(a) * ray + xc;
			double y = Math.sin(a) * ray + yc;
			int xi = (int)Math.round(x);
			int yi = (int)Math.round(y);
			a += da;
			CANVAS.drawPixel(xi, yi, Color.BLACK);
		}
		CANVAS.flush();
Ricompili ed esegui. A questo punto quando si preme il pulsante il programma disegna un cerchio di centro (200,200) e raggio 100.

Usando JavaScript si potrebbe evitare questa faccenda del ricompilare ogni volta ma non vorrei complicarvi la vita (anche se sarebbe una sorta di complicazione volta a semplificare).

Se dovete disegnare la curva a partire dai punti controllo e volete che questi punti di controllo siano immessi dall'utente allora anzichè il pulsante "crea curva" vi serve un sistema di gestione dell'interazione un pelo diverso (e un pelo più complicato). Comunque io inizierei prima acquisendo dimestichezza con il disegno "programmatico". Come nell'esempio su riportato, fissate i punti di controllo nel metodo creaCurva, applicate l'algoritmo che avete fatto e vedete cosa salta fuori. Poi si può passare a dire "ok, ora voglio che i punti di controllo siano determinati dall'utente".

Oppure non ho capito niente .
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2007, 14:38   #12
di@!
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1729
no hai capito bene

noi abbiamo i punti di controllo in una matrice per la curva di bezier, e in un'altra matrice per la curva b-spline...quindi niente da inserire dall'utente, ma solo una matrice da scorrere
di@! è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2007, 16:19   #13
di@!
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1729
una cosa...noi abbiamo ora il codice per disegnare una retta e un cerchio...ma se ho i punti di controllo di una curva, come la disegnamo?

nel senso che i nostri 2 algoritmi c'hanno permesso di trovare i punti per cui passano le 2 curve di bezier e b-spline, ma non di disegnare la curva...una volta che abbiamo i punti, se li mettiamo per esempio nel tuo codice originale esce una retta, capito?

Ultima modifica di di@! : 02-06-2007 alle 16:23.
di@! è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2007, 16:58   #14
di@!
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1729
Ho fatto un po' di prove con il metodo createCurve...questa funzione praticamente "colora" il pixel alle coordinate x,y, quindi facendo un ciclo for da 1 a 100 ovviamente colora tutti i pixel uno accanto all'altro disegnando in questo caso una retta. Ma se io ho SOLO alcuni punti per i quali passa la curva, mettiamo caso una decina di punti parecchio distanti tra loro, come disegno l'intera curva che passa tra quei punti? Se uso la funzione CANVAS.drawPixel per ogni punto, alla fine vengono fuori ovviamente solo alcuni punti segnati qua e la, ma non un'intera curva che passa per quei punti...capito che voglio dire?
di@! è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2007, 17:15   #15
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Pensavo che aveste l'algoritmo per il disegno di curve. Soluzione B. Nuovo Main.java

Codice:
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
import javax.script.*;
import java.io.*;

public class Main {
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() { public void run() {
			new Main().showWindow();
		}});
	}
	
	private final JCanvas CANVAS = new JCanvas(512, 512);
	
	private void showWindow() {
		Action action = new AbstractAction("Crea curva") {
			public void actionPerformed(ActionEvent e) { createCurve(); }
		};
		JPanel buttonPanel = new JPanel();
		buttonPanel.add(new JButton(action));
		JFrame window = new JFrame("Titolo");
		window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		window.add(CANVAS);
		window.add(buttonPanel, BorderLayout.SOUTH);
		window.setResizable(false);
		window.pack();
		window.setVisible(true);
	}
	
	private void createCurve() {
		java.io.Reader reader = null;
		try {
			ScriptEngine engine = new ScriptEngineManager().getEngineByName(
				"JavaScript");
			InputStream in = getClass().getResourceAsStream("/drawcurve.js");
			engine.put("CANVAS", CANVAS);
			reader = new java.io.InputStreamReader(in);
			engine.eval(reader);
			Invocable inv = (javax.script.Invocable)engine;
			inv.invokeFunction("drawCurve");
		} catch(Exception ex) {
			ex.printStackTrace();
			JOptionPane.showMessageDialog(CANVAS, "Errore nello script");
		} finally {
			try { if(reader != null) { reader.close(); }} catch (Exception ex) {}
		}
	}
}

class JCanvas extends JPanel {
	private BufferedImage buffer;
	private int width;
	private int height;

	public JCanvas(int width, int height) {
		this.width = width;
		this.height = height;
	}
	
	public void addNotify() {
		super.addNotify();
		createBuffer();
	}
	
	public Dimension getPreferredSize() {
		return new Dimension(width, height);
	}
	
	public void clear() {
		Graphics2D graphics = buffer.createGraphics();
		graphics.setColor(Color.WHITE);
		graphics.fillRect(0, 0, buffer.getWidth(), buffer.getHeight());
		graphics.dispose();
	}
	
	public void drawPixel(int x, int y, Color c) {
		if(x >= 0 && x < width && y >= 0 && y < height) {
			buffer.setRGB(x, y, c.getRGB());
		}
	}
	
	public Graphics2D getBufferGraphics() {
		return buffer.createGraphics();
	}
	
	public void flush() {
		repaint();
	}
	
	protected void paintComponent(Graphics g) {
		super.paintComponent(g);
		if(buffer != null) {
			g.drawImage(buffer, 0, 0, null);
		}
	}
	
	private void createBuffer() {
		GraphicsConfiguration cfg = getGraphicsConfiguration();
		buffer = cfg.createCompatibleImage(width, height, Transparency.OPAQUE);
		clear();
	}
}
Salva, compila ed esegui. Nella cartella del Main, crea un file "drawcurve.js". Dentro a quel file crea una funzione JavaScript di nome "drawCurve". Ad esempio:

Codice:
//drawcurve.js
function drawCurve() {
		CANVAS.clear();
		var graphics = CANVAS.getBufferGraphics();
		var origin = new java.awt.Point(0, 0);
		var control1 = new java.awt.Point(50, 100);
		var control2 = new java.awt.Point(100, 50);
		var destination = new java.awt.Point(200, 200);
		var curve = new java.awt.geom.CubicCurve2D.Double(
			origin.getX(), origin.getY(),
			control1.getX(), control1.getY(),
			control2.getX(), control2.getY(),
			destination.getX(), destination.getY());
		graphics.setPaint(java.awt.Color.BLACK);
		graphics.draw(curve);
		CANVAS.flush();
}
Salva il file e premi il pulsante "crea curva" sull'interfaccia. Si può usare anche GeneralPath per ottenere la stessa curva.

Codice:
//drawcurve.js
function drawCurve() {
		CANVAS.clear();
		var graphics = CANVAS.getBufferGraphics();
		var curve = new java.awt.geom.GeneralPath();
		curve.moveTo(0, 0);
		curve.curveTo(50, 100, 100, 50, 200, 200);
		graphics.setPaint(java.awt.Color.BLACK);
		graphics.draw(curve);
		CANVAS.flush();
}
L'unico intoppo è che non so se queste siano B-Spline o curve di Bezièr.

Oppure dovete fare anche l'algoritmo per il disegno delle curve a partire dai punti di controllo?
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2007, 17:51   #16
di@!
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1729
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
L'unico intoppo è che non so se queste siano B-Spline o curve di Bezièr.
Io nn ho capito una cosa...c'è un algoritmo che disegna le curve di bezier e uno che disegna le b-spline? Io avevo capito che una volta trovati i punti di controllo per le b-spline e per bezier, poi un qualsiasi algoritmo che disegna una curva va bene, ma ovviamente la curva cambia a seconda che inseriamo i punti di controllo trovati per b-spline e per bezier.

Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
Oppure dovete fare anche l'algoritmo per il disegno delle curve a partire dai punti di controllo?
Noi quello dobbiamo fare...nel senso che abbiamo i punti di controllo e basta, e dobbiamo disegnare la curva. In pratica cerchiamo un codice in cui basti inserire in qualche modo i punti di controllo, e ci disegna la curva. Ovviamente vengono fuori 2 curve diverse, a seconda che inseriamo i punti di controllo trovati con l'algoritmo di bezier e di b-spline.
di@! è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2007, 18:06   #17
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Guarda io posso dirti come disegnare qualcosa in Java ma se mi chiedi la differenza tra una curva di Bezièr, una B-Spline e una porzione di panna cotta potrei dirti che l'ultima si mangia e le altre due non le ho mai provate.

Poi non so se le curve di Bèzier siano un tipo di B-Spline o viceversa, se sia possibile disegnare l'una usando l'algoritmo dell'altra e via dicendo.

Magari sì. In questo caso puoi provare a passare i punti di controllo ai metodi draw di GeneralPath e vedere cosa salta fuori.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2007, 18:30   #18
di@!
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1729
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
Magari sì. In questo caso puoi provare a passare i punti di controllo ai metodi draw di GeneralPath e vedere cosa salta fuori.
Ok, perfetto...c'è solo un probl, mi da "package javax.script does not exist" in fase di compilazione...ho l'ultima versione di Java, dov'è il probl?
di@! è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2007, 18:35   #19
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
digita

javac -version

e premi invio.

Controlla che sia la versione 1.6 o superiore.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2007, 18:40   #20
di@!
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1729
nada, 1.5.0_06, credevo di avere l'ultima del jdk
di@! è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
WhatsApp: in fase di test l'introduzione...
XPeng G9 MY26 segna il record europeo pe...
Apple corregge due gravi vulnerabilit&ag...
DC Comics batte al cinema Marvel per la ...
L'iPhone più sottile di sempre scende di...
Saros di Housemarque punta ad offrire un...
La statale cinese FAW entra in Leapmotor...
Rinnova il PC spendendo meno: super offe...
Windows 11: Microsoft riduce l'uso di RA...
I 4 smartphone più venduti su Ama...
Samsung SDI testa una batteria silicon-c...
Volete un robot senza compromessi? DREAM...
CATL conferma un uso massiccio di batter...
Ripartono le offerte DJI: Neo torna a 14...
ASUS anticipa le schede madri AM5 NEO: d...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:30.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v