2009-08-18 2 views
0

Что эквивалентно этому звездному коду javaFx в Vid Rebol (нужно AGG для такого же эффекта, как я предполагаю)? http://www.javafxgame.com/javafx-wish-tree/Рисование звезды в Vb Rebol, как в JavaFX

javafx

/* 
* Star.fx 
*/ 

package wishtree; 

import java.text.SimpleDateFormat; 
import java.util.Date; 
import javafx.scene.effect.DropShadow; 
import javafx.scene.paint.*; 
import javafx.scene.shape.Polygon; 
import java.lang.Math.*; 

/** 
* @author Henry Zhang http://www.javafxgame.com 
*/ 

public class Star extends Polygon { 

    public var name: String = "your name"; 
    public var wish: String = "I want to ..."; 

    public var time: String = getDateString(); 
    public var email: String = "" ; 
    public var whichColor : Integer ; 

    def r1 : Double = 15; 
    def r2 : Double = r1/1.6; 

    var r = [r1, r2]; 

    var strokeColor = 
    [ Color.PINK, Color.YELLOW, Color.GOLDENROD, Color.CYAN, 
     Color.PURPLE, Color.BLUEVIOLET, Color.CORAL, Color.CRIMSON ]; 
    var fillColor = 
    [ Color.GOLD, Color.BLUE, Color.RED, Color.DARKSLATEBLUE, 
     Color.DARKORANGE, Color.MAGENTA, Color.BROWN, Color.CHOCOLATE ]; 

    init { 
    // compute the coordinates of the star polygon 
    points = for (i in [0..9]) [ 
     r[i mod 2] * cos(toRadians(i*36)), 
     r[i mod 2] * sin(toRadians(i*36)) 
    ]; 

    blocksMouse = true; 
    strokeWidth = 1; 
    whichColor = random() * sizeof(strokeColor) as Integer; 
    effect = DropShadow { color: Color.WHITE }; 

    changeStatus(); 
    } 

    function getDateString() : String { 
    var formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    var date = new Date(); 
    return formatter.format(date); 
    } 

    public function changeStatus() { 
    stroke = strokeColor[whichColor]; 

    fill = LinearGradient { 
      startX: 0 startY: 0 endX: 0 endY: 1.0 
      proportional: true 
      stops: [ 
        Stop { offset: 0.1 color: Color.WHITE } 
        Stop { offset: 1.0 color: fillColor[whichColor]} 
        ] 
      }; 
    } 
} 

ответ

1

Рисование аналогичной звезды в REBOL/View требует использования тиражной диалекта (это DSL) документированную here. Команды рисования FILL-PEN и POLYGON должны хорошо выполнять эту работу.

+0

Но как насчет специального сияющего эффекта? –

+0

effect = DropShadow {color: Color.WHITE}; –

Смежные вопросы