For 3D graphics kindly refer to the documentation on Renderer3d and Scene. There are some examples of spheres.
 
In my last example the ball will not be visible if I move it outside the bounds of the Canvas that contains it.

Note that in Curl there are two differnt kinds of Boxes. One that can contain only one child (e.g. Frame) and the other that can contain more than one children (e.g. Canvas). Kindly read the documentation on Canvas to see how to add children to it.
 
Here is one way of doing it.
 
{let frame:Frame =
    {Frame
        font-size = 14pt,
        font-weight = "bold",
        background = ""
    }
}
 
{let c1:Canvas=
    {Canvas
        background = "",
        width = 9cm,
        height = 8cm,
        {ShapeGroup
            translation = {Distance2d 0cm, 7cm},
            {RectangleShape
                {GRect 0cm, 1cm, 1cm, 0cm},
                color = "#006968",
                translation = {Distance2d (1.1cm * 1), 0cm}
            },
            {RectangleShape
                {GRect 0cm, 1cm, 5cm, 0cm},
                    color = "#2462a2",
                translation = {Distance2d (1.1cm * 6), 0cm}
            }
        }       
    }
}
 
{do
    {c1.add frame, x = 2cm, y = 2cm}
}
 
{CommandButton
    label = "bounce",
    {on Action do
        let random:RolledRandom = {RolledRandom 0, 5}       
        {frame.add {random.next-roll}, replace? = true}                           
    }
}
 
 
{value c1}
----- Original Message -----
From: pang tee
Sent: Monday, December 19, 2005 11:21 AM
Subject: Re: Generating Random number

Thanks.
 
COuld you advise on how to make the bouncing ball 3D?
 
Also, after the ball has finished bouncing, why does the ball disappear sometimes?
How do i make the random number generated appear in the box with nice big font.
 
Thanks,
PangTee

Kamal Bhatt <[EMAIL PROTECTED]> wrote:
Note that RectangleShape creates a rectangle shape and EllipseShape creates an elliptical shape. In the code below I am using EllipseShape to dyaw a ball (See canval c2).
 
I need a CommandButton to click to, to start animation. For the animation purpose I am using a Timer that goes off every .1s, 30 times (for 3s). Note that that inside the timer event I am changing the position of the ball using a random number, to show you how you can generate number numbers.
 
--Kamal
 
{curl 4.0 applet}
{curl-file-attributes character-encoding = "windows-latin-1"}
 
{import * from CURL.GUI.SHAPES}
 
{let c1:Canvas=
    {Canvas
        background = "",
        width = 9cm,
        height = 8cm,
        {ShapeGroup
            translation = {Distance2d 0cm, 7cm},
            {RectangleShape
                {GRect 0cm, 1cm, 1cm, 0cm},
                color = "#006968",
                translation = {Distance2d (1.1cm * 1), 0cm}
            },
            {RectangleShape
                {GRect 0cm, 1cm, 5cm, 0cm},
                    color = "#2462a2",
                translation = {Distance2d (1.1cm * 6), 0cm}
            }
        }
    }
}
 
{value c1}
 
{hrule}
 
{let e1:EllipseShape =
    {EllipseShape
        {GRect 0cm, 1cm, 1cm, 0cm},
        color = "#006968"
    }
}
 
{e1.apply-translation 0cm, 1cm}
{let c2:Canvas=
    {Canvas
        background = "",
        width = 9cm,
        height = 8cm,
        e1   
    }
}
 
{value c2}
 
{let f:Frame = {Frame}}
{value f}
{CommandButton
    label = "bounce",
    {on Action do
        let random:RolledRandom = {RolledRandom 0, 5}       
        {let t:Timer =
            {Timer
                interval = .1s,
                repeat = 30,
                {on TimerEvent do
                    let delta:int = {random.next-roll}
                    {f.add delta, replace? = true}
                    {c2.move-to-xy e1, 1cm, delta * 1cm}
                }
            }
        }
    }
}
 
 
----- Original Message -----
From: pang tee
Sent: Monday, December 19, 2005 12:21 AM
Subject: Re: Generating Random number

Hi Duke,
 
Ok. I have changed the code to below and I am getting 2 rectangles showing up. But I dont see the random number generated anywhere in the displayed applet.
 
How to display the random number generated?
 
How do i change the rectangles into bouncing spheres?
I would like the bouncing spheres to bounce for 3 secs before a new random number is generated everytime the user clicks on a button to generate a new number.
 
Thanks,
PT
 
{curl 4.0 applet}
{curl-file-attributes character-encoding = "windows-latin-1"}
{import * from CURL.GUI.SHAPES}
{let v:View =
    {View
        {Canvas
            width = 9cm,
            he i ght = 8cm,
            {ShapeGroup
                translation = {Distance2d 0cm, 7cm},
                {RectangleShape
                    {GRect 0cm, 1cm, 1cm, 0cm},
                    color = "#006968",
                    translation = {Distance2d (1.1cm * 1), 0cm}
                },
                {RectangleShape
                    {GRect 0cm, 1cm, 5cm, 0cm},
                    color = "#2462a2",
                    translation = {Distance2d (1.1cm * 6), 0cm}
                }
            }
        }
    }
}
 
{v.show}
 
    {value
        let random:RolledRandom = {RolledRandom 1, 1328}
        {random.next-roll}
    }


Duke Briscoe <[EMAIL PROTECTED]> wrote:

On Dec 18, 2005, at 10:39 PM, pang tee wrote:

> Thanks Kamal,
>  
> I tried to combine the two codes together, but ended with the errors
> attached in randomgenerator.doc.
>  
> Actually i just to get the screen to appear like in
> randomgenerator.jpg if anyone can help. The shape that is in the code
> here is calling rectangles not spheres.
>  
> Thanks,
> PT

The error is telling you that a View can only have one graphical child,
while you have two, one is the random number and the other is the
Canvas. So you need to choose some other layout.


*******************************************
To unsubscribe from this list, send a mail to:
mailto:[EMAIL PROTECTED]
To contact a human list administra tor, send a mail to:
mailto:[EMAIL PROTECTED]
To recieve a list of other options for this list, send a mail to:
mailto:[EMAIL PROTECTED]


__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

Reply via email to