Este programa utiliza-se do esquema processing de estrela dada em sala de aula para conjuga-lo com formularios HTML e passagem de parametros para dentro do applet Processing. A principio tive diversas falha para fazer com que os parametros conversassem com o processing. Mas durante aula demonstrativa de projetos o aluno jose levantou a queixa de similar problemas que foi resolvido utilizando-se o metodo de passagem de informação de dados por meio de GET no form HTML ao invés de POST. Utilizei-me então da dica e com algumas modificações fiz o applet conversar com o formulário HTML. Aqui vai o link da pagina
Programa form_estrela.php
<html>
<head><title>Teste de passagem Processing</title></head>
<body>
<hr>
<h1>TESTE DE INTEGRACAO</H1>
<form action="form_estrela.php" method="GET">
Escolha o numero de pontas para a estrela.
<select name="pontas" size="2">
<?php
for($i=1;$i<=20;$i++){
echo ("");
}
?>
</select>
<br>
Escolha a cor de fundo na qual a estrela aparece.
<input type="radio" name="fundo" value="237,159,176">Rosa
<input type="radio" name="fundo" value="255,204,0">Amarelo
<input type="radio" name="fundo" value="174,221,60">Verde
<input type="radio" name="fundo" value="255,255,255">Branco
<input type="radio" name="fundo" value="116,186,221">Azul
<input type="submit" value="Ver" />
<input type="reset" value="Limpar" />
</form>
<?php
if(Empty($_GET["pontas"])) {$pontas="5";}
else {$pontas=$_GET["pontas"];$fundo=$_GET["fundo"];}
echo ("<applet code='Estrela_HTML' archive='Estrela_HTML.jar' width=400 height=400>");
echo ("<param name='pontas' VALUE='$pontas'>");
echo ("<param name='fundo' VALUE='$fundo'>"); ?>
</applet>
</body>
</html>
Programa Processing Estrela.pde
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Estrela_HTML extends PApplet {
float r, ang, pontas;
int rd,gr,bl;
public void setup()
{
// Passagem dos Paramentros advindos do HTML.
String[] fundoStr = splitTokens(param("fundo"),","); // cor de fundo da tela.
String pontasStr = param("pontas"); // numero de pontas da estrela.
pontas = float(pontasStr);
rd =int(fundoStr[0]);
gr =int(fundoStr[1]);
bl =int(fundoStr[2]);
size(400, 450); // define o tamnho da tela
background(rd,gr,bl); // define a cor de fundo como branco
r = min(width,height) / 2 * 0.9f;
ang = 0;
setLayout(new FlowLayout(FlowLayout.CENTER,5,5));
}
public void draw()
{
background(rd,gr,bl);
setLayout(new FlowLayout());
star(r, pontas, 3, ang);
ang += 0.01f;
}
public void star(float raio, float lado, float divisor, float angulo)
{
float next, k, i,inc,y0,x0,y1,x1,pi=3.141596f;
float pi2 = 2*pi;
inc = pi2/lado;
k = divisor;
next = inc * k;
for(i=angulo;i<=pi2+angulo;i+=inc)
{
x0 = sin(i)*raio;
y0 = -cos(i)*raio;
x1 = sin(i+next)*raio;
y1 = -cos(i+next)*raio;
line(width/2+round(x0),height/2+round(y0),width/2+round(x1),height/2+round(y1));
}
}