New Commands for Turing
Author |
Message |
Bacchus
|
Posted: Fri Jul 01, 2005 11:11 pm Post subject: (No subject) |
|
|
Take a look at the Flexible Array Tutorial by Cervantes, its doesnt work the best, but you can resize multi-dimensional flexible arrays. If you really wanted to, you could even look up the old thread that inspired the edit into that Tutorial.
|
|
|
|
|
|
Sponsor Sponsor
|
|
|
Cervantes
|
Posted: Mon Jul 04, 2005 2:43 pm Post subject: (No subject) |
|
|
Here's the finished Str module. I think I only added one or two new functions, since a lot of them I can't do (they use blocks, or return an array with a dynamic upper bounds, or maybe some other things Turing can't do).
Is someone going to tackle the Array module? I have a feeling a lot of the methods can't be translated into Turing (mostly because of blocks and an unknown upper bounds) so it shouldn't be too daunting a task.
Description: |
|
Download |
Filename: |
Str.tu |
Filesize: |
6.75 KB |
Downloaded: |
104 Time(s) |
|
|
|
|
|
|
jamonathin
|
Posted: Wed Jul 06, 2005 11:35 pm Post subject: (No subject) |
|
|
I was juss screwin around with Turing's RGB thinger, and I came up with this little tool. I figured I'd post a demo of it before making a big deal about it, seeing as it may not be good enough for our lil update, but here it is.
It just asks the user to input 2 colors and it creates a shaded image of it between the two colors. Click the mouse somewhere.
P.S - good job on the str. mod.
code: | setscreen ("graphics:max;max,nobuttonbar")
colorback (black)
cls
var mx, my, mz : int
procedure ShadeOval (x, y, a, b, c1, c2 : int)
var high : int
if a > b then
high := a
elsif b > a then
high := b
else
high := a
end if
var r, g, bl : array 1 .. 2 of real
RGB.GetColor (c1, r (1), g (1), bl (1))
RGB.GetColor (c2, r (2), g (2), bl (2))
var C : int
var dr, dg, db : real
dr := (r (1) - r (2)) / high
dg := (g (1) - g (2)) / high
db := (bl (1) - bl (2)) / high
for decreasing i : high .. 2
r (2) += dr
g (2) += dg
bl (2) += db
C := RGB.AddColor (r (2), g (2), bl (2))
drawfilloval (x, y, round (a * (i / high)), round (b * (i / high)), C)
end for
end ShadeOval
loop
mousewhere (mx, my, mz)
if mz = 1 then
ShadeOval (mx, my, 15, 15, yellow, black)
end if
end loop
|
|
|
|
|
|
|
MysticVegeta
|
Posted: Thu Jul 07, 2005 11:29 am Post subject: (No subject) |
|
|
Nice! That looks pretty cool, looks like an oval gradient, good job
|
|
|
|
|
|
StarGateSG-1
|
Posted: Mon Jul 11, 2005 3:58 pm Post subject: (No subject) |
|
|
I don;t know if anyoen noticed this but Draw.ThinkLine already existed??, I haven been away and AM not sure if thsi was brought up??
|
|
|
|
|
|
[Gandalf]
|
Posted: Mon Jul 11, 2005 5:44 pm Post subject: (No subject) |
|
|
Yes, it already existed although it was not officially supported. We did not add any Draw.ThickLine - but that's what I got the idea from to make 'thick' shapes.
Really nice 'oval gradient'! Good for making graphics on Turing. Only thing I would try to fix is the constant black outline around it - makes it look a bit worse.
|
|
|
|
|
|
jamonathin
|
Posted: Tue Jul 12, 2005 2:00 am Post subject: (No subject) |
|
|
what black line are you talking about [Gandalf]? I checked it out on different colored backgrounds, with different oval color, and still nothing.
|
|
|
|
|
|
Shyfire
|
Posted: Tue Jul 12, 2005 2:04 pm Post subject: fullscreen???????????????????????/ |
|
|
k iv got an idea how about editing the window module to have a fullscreen function
|
|
|
|
|
|
Sponsor Sponsor
|
|
|
MysticVegeta
|
Posted: Tue Jul 12, 2005 3:35 pm Post subject: (No subject) |
|
|
Thats not possible because turing cannot interact with Windows API.
|
|
|
|
|
|
Shyfire
|
Posted: Tue Jul 12, 2005 3:54 pm Post subject: (No subject) |
|
|
o ic well there goes that idea
|
|
|
|
|
|
[Gandalf]
|
Posted: Tue Jul 12, 2005 6:57 pm Post subject: (No subject) |
|
|
Well, see at the attachment, how there is always a black outline (not line ) wherever a cirlce overlaps? That's what would happen if there was a, say red background too.
Description: |
screenshot of oval gradient (.gif for some reason...) |
|
Filesize: |
2.41 KB |
Viewed: |
1445 Time(s) |
|
|
|
|
|
|
|
jamonathin
|
Posted: Wed Jul 13, 2005 1:53 pm Post subject: (No subject) |
|
|
That's because that's the first (largest) oval being drawn, which is the second color (last value in command). What the command does is, it asks for two colors, and draws the fade between them.
See, what my first idea was, was to have the oval fade into whatever color the background was, but then there would be some screwups with Pic.Draw's and whatnot, and originality of the oval. So I just had the user pick whatever two colors they wanted the ball to be. So, are you saying have the 'yellow' fade into whatever whatdotcolor is behind the oval?
|
|
|
|
|
|
[Gandalf]
|
Posted: Wed Jul 13, 2005 6:18 pm Post subject: (No subject) |
|
|
Yep. You could just have two different commands or something. I'm not sure how it would mess anything up, I didn't look at the code, but the idea I had of this is having it slowly fade into the background. It's up to you and either way it works pretty good.
|
|
|
|
|
|
jamonathin
|
Posted: Wed Jul 13, 2005 10:14 pm Post subject: (No subject) |
|
|
Well firstly, I meant the background at first was a problem, because sometimes when I make a program, my background color is green or something, and I have pictures drawn on top of the background that don't relate to green whatsoever. And always making the circle draw with the background color could make the proggy look ugly.
But if we were to draw a circle like such, we could compare every color in the background with the circle
code: | proc circle (c : int)
for a : 0 .. 360
for i : 1 .. c
drawdot (round (100 + sin (a) * i), round (100 + cos (a) * i), black)
end for
end for
drawdot (100, 100, black)
end circle
circle (20) |
And then we can incorporate our RGB thinger.
code: | proc circle (c, X : int)
var res : array 1 .. 360, 1 .. c of int
var r, g, b : array 1 .. 2 of real
var C : int
for d : 1 .. 2
for a : 1 .. 360
for i : 1 .. c
if d = 1 then
C := whatdotcolor (round (maxx div 2 + sin (a) * i), round (maxy div 2 + cos (a) * i))
RGB.GetColor (C, r (1), g (1), b (1))
RGB.GetColor (X, r (2), g (2), b (2))
res (a, i) := RGB.AddColor ((r (1) + r (2)) / 2, (g (1) + g (2)) / 2, (b (1) + b (2)) / 2)
else
drawdot (round (maxx div 2 + sin (a) * i), round (maxy div 2 + cos (a) * i), res (a, i))
end if
end for
end for
end for
C := whatdotcolor (maxx div 2, maxy div 2)
RGB.GetColor (C, r (1), g (1), b (1))
RGB.GetColor (X, r (2), g (2), b (2))
var BLAAAAAAAAH : int := RGB.AddColor ((r (1) + r (2)) / 2, (g (1) + g (2)) / 2, (b (1) + b (2)) / 2)
drawdot (maxx div 2, maxy div 2, BLAAAAAAAAH)
end circle
setscreen ("graphics:300;200,nobuttonbar,position:center;center")
for i : 1 .. 1000
drawfilloval (Rand.Int (0, maxx), Rand.Int (0, maxy), Rand.Int (5, 20), Rand.Int (5, 20), Rand.Int (1, 6))
end for
circle (20, black)
|
But now that we have that, try changing the 20,black to 200, black. Looks kinda cool, but wont work.
I first I thought I knew what you were saying, and now i forgot, so this is all I have lol. Not sure where to go after this.
|
|
|
|
|
|
|
|