Matematici: una sfida

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Avatar utente
Breston
Membro
Messaggi: 84
Iscritto il: 21/08/2014, 15:51
Specialità: Nothing
Uso: GM:Studio 2
Contatta:

Re: Matematici: una sfida

Messaggio da Breston »

Il tuo, la direzione tra due punti che coincidono non è definita, è proprio un problema concettuale.

Solid Snake
GMI Advanced
Messaggi: 2093
Iscritto il: 19/12/2010, 16:17
Specialità: Programmazione
Uso: GM:Studio 1.4 Standard
Contatta:

Re: Matematici: una sfida

Messaggio da Solid Snake »

Per questo l'ho scritto... Come hai detto tu non esiste una direzione tra due punti che coincidono.
♥♥♥♥♥♥
Immagine
♥♥♥♥♥♥
Spoiler
Immagine

Avatar utente
Breston
Membro
Messaggi: 84
Iscritto il: 21/08/2014, 15:51
Specialità: Nothing
Uso: GM:Studio 2
Contatta:

Re: Matematici: una sfida

Messaggio da Breston »

Esatto, ma è un problema prodotto dall'algoritmo, non dalla funzione: sei tu che devi assicurarti di restare dentro al suo dominio.
In sostanza il codice andrebbe ripensato per risolvere il problema. La strada semplice è aggiungere l'eccezione dei punti coincidenti con un controllo if, altrimenti è possibile cercare di calcolare le direzioni diversamente (ci si può anche limitare a l prossimo ma maggiore di 0, ma non è una soluzione da matematici.. :asd: )

Solid Snake
GMI Advanced
Messaggi: 2093
Iscritto il: 19/12/2010, 16:17
Specialità: Programmazione
Uso: GM:Studio 1.4 Standard
Contatta:

Re: Matematici: una sfida

Messaggio da Solid Snake »

Breston ha scritto:(ci si può anche limitare a l prossimo ma maggiore di 0, ma non è una soluzione da matematici.. :asd: )
Qui siamo programmatori! :asd:
Comunque ho usato questo approccio perché qui stiamo parlando di riprodurre una gif con un algoritmo, dato che l'occhio umano è facilmente ingannabile, ho dato per scontato che invece di collassare tutti i vertici in un solo punto questi rimanessero leggermente distaccati.
♥♥♥♥♥♥
Immagine
♥♥♥♥♥♥
Spoiler
Immagine

Avatar utente
Wolfrost
Membro super
Messaggi: 692
Iscritto il: 03/08/2014, 13:08
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Una galassia lontana lontana...
Contatta:

Re: Matematici: una sfida

Messaggio da Wolfrost »

Per chi si vuole cimentare in una sfida più o meno simile:
Immagine
Ricreare questa gif sempre come effetto di transizione (un po' alla 007 eh ahahahah :asd:)
Un'altra sfida, ricreare questa gif:
Immagine
Immagine

Immagine

Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: Matematici: una sfida

Messaggio da Tizzio »

avevo fatto qualcosa di simile al primo http://sandbox.yoyogames.com/games/168517
Immagine

Avatar utente
Breston
Membro
Messaggi: 84
Iscritto il: 21/08/2014, 15:51
Specialità: Nothing
Uso: GM:Studio 2
Contatta:

Re: Matematici: una sfida

Messaggio da Breston »

Qualcosa di più difficile di quel frattale no?

Solid Snake
GMI Advanced
Messaggi: 2093
Iscritto il: 19/12/2010, 16:17
Specialità: Programmazione
Uso: GM:Studio 1.4 Standard
Contatta:

Re: Matematici: una sfida

Messaggio da Solid Snake »

Tizzio ha scritto:avevo fatto qualcosa di simile al primo http://sandbox.yoyogames.com/games/168517
Immagine
Created by mbare :asd:
♥♥♥♥♥♥
Immagine
♥♥♥♥♥♥
Spoiler
Immagine

Avatar utente
Breston
Membro
Messaggi: 84
Iscritto il: 21/08/2014, 15:51
Specialità: Nothing
Uso: GM:Studio 2
Contatta:

Re: Matematici: una sfida

Messaggio da Breston »

e va bene..

Codice: Seleziona tutto

import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.util.ArrayList;
import java.util.List;


public class main extends JPanel{

	private class Point
	{
		public float x,y;
		public Point(float x, float y)
		{
			this.x = x;
			this.y = y;
		}
		
	}
	private class Segment
	{
		public Point a,b;
		public Segment(Point A, Point B)
		{
			a = A;
			b = B;
		}
		public Segment(float xa, float ya, float xb, float yb)
		{
			a = new Point(xa,ya);
			b = new Point(xb,yb);
		}
	}
	private Segment[] subdivideSegment(Segment segment)
	{
		Segment[] segs = new Segment[3];
		segs[0] = new Segment(0,0,0,0);
		segs[1] = new Segment(0,0,0,0);
		segs[2] = new Segment(0,0,0,0);
		
		Point A = segment.a, B = segment.b;
		Point C = new Point((A.x+B.x)/2.0f, (A.y+B.y)/2.0f);
		Point E,D;
		float l; // Segment length
		if(A.x == B.x)
		{
			// Vertical segment
			l = Math.abs(A.y-B.y);
			D = new Point(C.x+l/2.0f,C.y);
			E = new Point(C.x-l/2.0f,C.y);
		}
		else
		{
			// Horizontal segment
			l = Math.abs(A.x-B.x);
			D = new Point(C.x,C.y+l/2.0f);
			E = new Point(C.x,C.y-l/2.0f);
		}
		
		segs[0].a = C;
		segs[0].b = B;
		segs[1].a = C;
		segs[1].b = D;
		segs[2].a = C;
		segs[2].b = E;
		
		
		return segs;
	}
	private void drawFractal(Graphics2D g, int steps, float length)
	{
		List<Segment> toBeDrawed = new  ArrayList<Segment>();
		List<Segment> toBeSubdivided = new ArrayList<Segment>();		
		float l = length; // Segment length
		float x = g.getClipBounds().width / 2f;
		float y = g.getClipBounds().height / 2f;
		
		toBeDrawed.add(new Segment(x,y,x+l,y));
		toBeDrawed.add(new Segment(x,y,x-l,y));
		toBeDrawed.add(new Segment(x,y,x,y+l));
		toBeDrawed.add(new Segment(x,y,x,y-l));
		
		toBeSubdivided.add(new Segment(x,y,x+l,y));
		toBeSubdivided.add(new Segment(x,y,x-l,y));
		toBeSubdivided.add(new Segment(x,y,x,y+l));
		toBeSubdivided.add(new Segment(x,y,x,y-l));
		
		for(int i = 0; i < steps; i++)
		{
			// For each segment s in toBeSubdivided
			//	subdivide s to get 3 more segs
			//	add the 3 segs to toBeSubdivided
			//	add the 2 external segs to toBeDrawed
			//	remove s from toBeSubdivided
			List<Segment> newToBeSubdivided = new ArrayList<Segment>();
			for(Segment s : toBeSubdivided)
			{
				Segment[] segs = subdivideSegment(s);
				
				newToBeSubdivided.add(segs[0]);
				newToBeSubdivided.add(segs[1]);
				newToBeSubdivided.add(segs[2]);
				
				toBeDrawed.add(segs[1]);
				toBeDrawed.add(segs[2]);
			}
			toBeSubdivided = newToBeSubdivided;
		}
		
		// Draw the fractal
		for(Segment s : toBeDrawed)
			g.drawLine((int)s.a.x, (int)s.a.y, (int)s.b.x, (int)s.b.y);
		
	}
  public void paint(Graphics g) {
      Graphics2D g2 = (Graphics2D)g;
      drawFractal(g2, 11, 300f);
   }
   public static void main(String[] args) {
      JFrame f = new JFrame();
      f.getContentPane().add(new main());
      f.setSize(800, 800);
      f.setVisible(true);
   }
}
Immagine
Per ricreare la gif è sufficiente richiamare drawFractal con valori di steps da 0 a 7 (nell'img è a 11).
Ultima modifica di Breston il 26/11/2015, 0:45, modificato 3 volte in totale.

Avatar utente
Wolfrost
Membro super
Messaggi: 692
Iscritto il: 03/08/2014, 13:08
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Una galassia lontana lontana...
Contatta:

Re: Matematici: una sfida

Messaggio da Wolfrost »

Oh mio dio...
Immagine

Immagine

Avatar utente
Breston
Membro
Messaggi: 84
Iscritto il: 21/08/2014, 15:51
Specialità: Nothing
Uso: GM:Studio 2
Contatta:

Re: Matematici: una sfida

Messaggio da Breston »

Sarà meglio che il prossimo sia più difficile.

Avatar utente
Wolfrost
Membro super
Messaggi: 692
Iscritto il: 03/08/2014, 13:08
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Una galassia lontana lontana...
Contatta:

Re: Matematici: una sfida

Messaggio da Wolfrost »

Breston ha scritto:Sarà meglio che il prossimo sia più difficile.
Ora ho davvero paura Breston :asd: :asd:
Immagine

Immagine

Nix
GMI Advanced
Messaggi: 2437
Iscritto il: 26/12/2008, 18:14
Uso: GM:Studio 2
Contatta:

Re: Matematici: una sfida

Messaggio da Nix »

Breston ha scritto:Sarà meglio che il prossimo sia più difficile.
Spoiler
Immagine

Avatar utente
cp94
Moderatore
Messaggi: 2789
Iscritto il: 04/07/2009, 19:18
Specialità: ddd
Località: Brescia
Contatta:

Re: Matematici: una sfida

Messaggio da cp94 »

Breston ha scritto:Sarà meglio che il prossimo sia più difficile.
Spoiler
Immagine
Games you should check out
Naemo
E T U S
Overgravity
Inside the Code

Immagine

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: Matematici: una sfida

Messaggio da Jak »

Nix ha scritto:
Breston ha scritto:Sarà meglio che il prossimo sia più difficile.
Spoiler
Immagine
Le regole delle varie sfide sono:
Wolfrost ha scritto:Sareste capaci di riprodurre lo stesso ed identico effetto con Game Maker?
Wolfrost ha scritto:Altra sfida: ricreare questa gif
Wolfrost ha scritto:Ricreare questa gif sempre come effetto di transizione (un po' alla 007 eh ahahahah :asd:)
Un'altra sfida, ricreare questa gif:
Wolfrost ha scritto:Dovrete ricreare gli effetti qui proposti
Ma non solo imitando la gif, dovete strutturare ogni effetto come se fosse un effetto di transizione da una room ad un'altra! :D
Siccome non è un'animazione si suppone che non lo si deve usare come effetto di transizione e quindi la regola sia riprodurre l'immagine con game maker o riprodurre l'immagine in maniera più identica possibile.

Codice: Seleziona tutto

draw_sprite(sprite_nix, 0, 0, 0);
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
CaptainOlon
Membro attivo
Messaggi: 441
Iscritto il: 30/07/2011, 14:56
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Salerno
Contatta:

Re: Matematici: una sfida

Messaggio da CaptainOlon »

Jak win.
Immagine
Immagine

Avatar utente
Breston
Membro
Messaggi: 84
Iscritto il: 21/08/2014, 15:51
Specialità: Nothing
Uso: GM:Studio 2
Contatta:

Re: Matematici: una sfida

Messaggio da Breston »

Ok, Nix, non riesco nemmeno ad immaginare che oggetto matematico sia :fapensare:
Scrivi

Nix
GMI Advanced
Messaggi: 2437
Iscritto il: 26/12/2008, 18:14
Uso: GM:Studio 2
Contatta:

Re: Matematici: una sfida

Messaggio da Nix »

Breston ha scritto:Ok, Nix, non riesco nemmeno ad immaginare che oggetto matematico sia :fapensare:
Scrivi
Si chiama due ore senza niente da fare.
Non è nessun oggetto matematico comunque, era uno scherzo.
.

Solid Snake
GMI Advanced
Messaggi: 2093
Iscritto il: 19/12/2010, 16:17
Specialità: Programmazione
Uso: GM:Studio 1.4 Standard
Contatta:

Re: Matematici: una sfida

Messaggio da Solid Snake »

Nix ha scritto:
Breston ha scritto:Ok, Nix, non riesco nemmeno ad immaginare che oggetto matematico sia :fapensare:
Scrivi
Si chiama due ore senza niente da fare.
Non è nessun oggetto matematico comunque, era uno scherzo.
.
Ok, che ho un computer poco potente, ma da qui a farmi crashare istantaneamente il browser ce ne vuole... :asd:
♥♥♥♥♥♥
Immagine
♥♥♥♥♥♥
Spoiler
Immagine

Nix
GMI Advanced
Messaggi: 2437
Iscritto il: 26/12/2008, 18:14
Uso: GM:Studio 2
Contatta:

Re: Matematici: una sfida

Messaggio da Nix »

Solid Snake ha scritto:Ok, che ho un computer poco potente, ma da qui a farmi crashare istantaneamente il browser ce ne vuole... :asd:
È un'immagine grande 16000x16000.

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 31 ospiti