Sto provando a scrivere un codice usando matlab che emula un puntatore laser in modo che il mio gatto si diverta a seguirlo sullo schermo. Questo è quello che ho fatto finora:emula efficacemente un puntatore laser per il mio gatto usando Matlab
figure('menubar','none','color','k')
h = plot(0,'r.','MarkerSize',20);
xlim([-1 1]); ylim([-1 1])
axis off
phi1=(1+sqrt(5))/2;
phi2=sqrt(3);
step= 0.0001; % change according to machine speed
for t=0:step:100
set(h,'xdata',sin(t+phi1*t),'ydata',cos(phi2*t))
drawnow
end
I "problemi" con questo codice sono i seguenti:
il puntatore si muove più o meno a velocità costante e non rallenta a una fermata vicina e poi inaspettatamente procedere.
La traiettoria si sta ripetendo, anche se ho provato a farlo usando numeri irrazionali, i movimenti generali sono continui da destra a sinistra. Penso che un cambiamento di traiettoria più preciso aiuterà.
So che questa non è una domanda di programmazione tradizionale, ma voglio risolvere un problema di programmazione. Apprezzerei il tuo aiuto e naturalmente aprirò a nuovi modi per rispondere alla mia domanda che non usa il codice che ho aggiunto.
fantastico progetto . Ma a costo di sacrificare potenzialmente un monitor ?! – voxeloctree
è possibile implementare la nozione di posizione, velocità e accelerazione, con i parametri da controllare ciascuno. Cerca ispirazioni in http://gamedev.stackexchange.com – Amro
Divertimento. Potresti anche imparare qualcosa di nuovo nel farlo. Simula uno [attrattore strano] (http://mathworld.wolfram.com/StrangeAttractor.html) o un altro attrattore caotico. :-) Il famoso [attrattore di Lorenz] (http://en.wikipedia.org/wiki/Lorenz_attractor) è abbastanza facile da fare. Oppure guarda in [Passeggiate casuali 2D] (http://en.wikipedia.org/wiki/Random_walk) e [Processi Wiener] (http://en.wikipedia.org/wiki/Wiener_process) per modi di aggiungere rumore ad un altro sistema/processo. – horchler