Author Topic: Unfinished TI-84 CE 3d Grapher (ICE)  (Read 1229 times)

0 Members and 1 Guest are viewing this topic.

Offline johnbchron

  • LV2 Member (Next: 40)
  • **
  • Posts: 33
  • Rating: +1/-0
  • RiskALungForDiving
    • View Profile
Unfinished TI-84 CE 3d Grapher (ICE)
« on: October 15, 2018, 02:05:26 pm »
[this post may or may not be categorized correctly]


I am in the process of making a 3D graphing utility in ICE C for the TI-84 CE. It can do limited graphing, but at least it displays something that makes some sense. Please review my code to make comments, suggestions, and anything else you might want to say as it nears completion (Please keep in mind that this is one of my first real projects in ICE). Thanks! (also please tell me how to take a screenshot of an ice program while it is running)

EDIT: I hope someday to have it graph the complex plane


<http://sc.cemetech.net/?hash=flG8hpva75MC9gh1gKc3ZgBZGUMd>


Code: [Select]

[i]GRAPH3D


0->XD
0->YD


50->X
50->Y
50->Z


173->CONSTC


Begin)
SetDraw(1)


FillScreen(255)
Blit(1)
Call EVAL
FillScreen(255)
Call BOUTLINE
Call FOUTLINE
Call GRAPH
Call FOUTLINE
Blit(1)
Repeat getKey(15)
End
det(1)
Return


Lbl EVAL
Alloc(100*100*3)->A
For(Z,0,99)
FillScreen(255)
PrintStringXY("Calculating...",5,5)
SetTextXY(5,15)
PrintUInt(Z,3)
PrintString(" percent")
Blit(1)
For(X,0,99)

X-50->X
[i](sin(X*256/100)*25/256)+(cos(Z*256/100)*25/256)+50->{A+(X+(Z*100))*3}
16777216-(16777216-(X*X)/25)+50-(Z*Z/32)->{A+(X+50+(Z*100))*3}
[i](X*X/25+50)-Z/4
[i]->{A+(X+50+(Z*100))*3}
X+50->X

End
End
Return


Lbl FOUTLINE
SetColor(0)
Line(160,220,160+(CONSTC/2),220-50)
Line(160,120,160+(CONSTC/2),120-50)
Line(160,220,160-(CONSTC/2),220-50)
Line(160,120,160-(CONSTC/2),120-50)
Line(160-(CONSTC/2),120-50,160-(CONSTC/2),120+50
Line(160+(CONSTC/2),120-50,160+(CONSTC/2),120+50
Line(160,120,160,120+100)
Line(160,20,160+(CONSTC/2),20+50)
Line(160,20,160-(CONSTC/2),20+50)


Return


Lbl BOUTLINE
Line(160,20,160,220)
Line(160-(CONSTC/2),20+50,160+(CONSTC/2),220-50)
Line(160-(CONSTC/2),220-50,160+(CONSTC/2),20+50)
Return


Lbl GRAPH
For(Z,0,99)
For(X,0,99)
{A+(X+(Z*100))*3}->YA
If (YA<150)

If X<100
{A+(X+1+(Z*100))*3}->YB
Else
YA->YB
End
If Z<100
{A+(X+((Z+1)*100))*3}->YC
Else
YA->YC
End
SetColor((Z*8/100)+144)
If not(XD) and not(YD)
SetPixel((160-(CONSTC/2)+(CONSTC/2*X/100)+(CONSTC/2*Z/100)),(220-50-YA-(50*X/100)+(50*Z/100)))
End
If XD
Line((160-(CONSTC/2)+(CONSTC/2*X/100)+(CONSTC/2*Z/100)),(220-50-YA-(50*X/100)+(50*Z/100)),(160-(CONSTC/2)+(CONSTC/2*(X+1)/100)+(CONSTC/2*Z/100)),(220-50-YB-(50*(X+1)/100)+(50*Z/100)))
End
If YD
Line((160-(CONSTC/2)+(CONSTC/2*X/100)+(CONSTC/2*Z/100)),(220-50-YA-(50*X/100)+(50*Z/100)),(160-(CONSTC/2)+(CONSTC/2*X/100)+(CONSTC/2*(Z+1)/100)),(220-50-YC-(50*X/100)+(50*(Z+1)/100)))
End
End
End
Blit(1)
If getKey(15)
Return
End
End
Return
« Last Edit: October 15, 2018, 02:11:18 pm by johnbchron »
Just a dude who is really bored in school... and a huge nerd.
Click here to give me an internet!

Offline Xeda112358

  • Xombie.
  • Moderator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 4543
  • Rating: +715/-6
  • meow :3
    • View Profile
Re: Unfinished TI-84 CE 3d Grapher (ICE)
« Reply #1 on: October 16, 2018, 02:05:46 am »
To get a screenshot, you can use the Capture option in CEmu.

Offline johnbchron

  • LV2 Member (Next: 40)
  • **
  • Posts: 33
  • Rating: +1/-0
  • RiskALungForDiving
    • View Profile
Re: Unfinished TI-84 CE 3d Grapher (ICE)
« Reply #2 on: October 16, 2018, 01:53:51 pm »

*this is graphing Y = (X/5)2 - (Z/4)2, where -50 < X < 50, and 0 < Z < 100. (posted code)
« Last Edit: October 16, 2018, 02:00:50 pm by johnbchron »
Just a dude who is really bored in school... and a huge nerd.
Click here to give me an internet!

Offline Xeda112358

  • Xombie.
  • Moderator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 4543
  • Rating: +715/-6
  • meow :3
    • View Profile
Re: Unfinished TI-84 CE 3d Grapher (ICE)
« Reply #3 on: October 16, 2018, 06:49:23 pm »
Wow, that's pretty cool!