to put tiny little 5-pixel crosses on the graphic display with X, Y coördinates I made a little program:

:(Xmax-Xmin)/94.0000007499[STO>]A
:(Ymax-Ymin)/61.9999999349[STO>]B
:Input "X?",C
:Input "Y?",D
:Pt-On(C,D)
:Pt-On(C-A,D)
:Pt-On(C+A,D)
:Pt-On(C,D-B)
:Pt-On(C,D+B)


it works for ti 84 plus graphic display.
it works for almost the entire area in and around the center, only very near the sides of the display and close around the value of -5 of Y it doesn`t give a complete cross.


does anyone have a good working simple program to do the job good?

a better result is with the

:(Ymax-Ymin)/61.9999999349[STO>]B made into :(Ymax-Ymin)/61.999999934911[STO>]B
and
:Pt-On(C,D+B) made into :Pt-On(C,D+B+.00000001)
if you prefer better result with a bit extra work
When working in screen coordinates it's usually more convenient to use `Pxl-On` and friends, since they operate on screen coordinates (column 0-94, row 0-62) rather than graph coordinates.

SourceCoder 3 (CROSS1) wrote:
:Prompt C,D
:Pxl-On(C-1,D-1
:Pxl-On(C-1,D+1
:Pxl-On(C,D
:Pxl-On(C+1,D-1
:Pxl-On(C+1,D+1
This will cause an error if any of the computed coordinates are offscreen, but it's fairly simple to check whether each plotted point is in the valid range and omit those that are not.

If you want to use graphscreen coordinates, ΔX and ΔY are your friends:
SourceCoder 3 (CROSS2) wrote:
:Prompt C,D
:Pt-On(C-DeltaX,D-DeltaY
:Pt-On(C-DeltaX,D+DeltaY
:Pt-On(C,D
:Pt-On(C+DeltaX,D-DeltaY
:Pt-On(C+DeltaX,D+DeltaY
This should work regardless of the window settings, drawing a little X centered at the specified graph coordinates and automatically clipping parts that are offscreen.

Another neat technique is to use stat plots: they're fast but not always convenient because you need to build up fairly lengthy lists of what you want to display and always operate in graph coordinates.
SourceCoder 3 (CROSS3) wrote:
:Prompt C,D
:C+DeltaX*{~1,~1,0,1,1->L1
:D+DeltaY*{~1,1,0,~1,1->L2
:Plot1(Scatter,L1,L2,plotdot
:DispGraph
If you want to display little boxes or plus signs instead, stat plots are particularly nice because you can substitute for plotdot and each point will instead be drawn as a box or plus sign rather than a single pixel.
with pixels-on it is not in graphic coórdinates

the DeltaX and DeltaY don`t always work fine, with value of 5 and -5 for Y.
the solution would look like something like this

:Prompt C,D
:Pt-On(C,D)
:Pt-On(C-[DeltaX],D)
:Pt-On(C+[DeltaX]+C×.0000001,D)
:Pt-On(C,D-[DeltaY])
:Pt-On(C,D+[DeltaY]+.000001)

this way it works almost perfect as far as I can see except for X value of 15 , so thanks for helping me on the road
The issue isn't super well-defined, but plot style 3 is the cross, which can be used as a third parameter to Pt-On( as follows:

Code:
Prompt C,D
Pt-On(C,D,3
great, thanks
for crosses on the screen where there already are some drawings it would be more preferrable if you could use a form like the Pt-Change for the cross figure. then you are able to see wether the cross "lies" on the drawing or not, within the accuracy of the grid of course.

I thought the program details above where not working good enough so here an improvement:


Code:
:Prompt C,D
:Pt-Change(C,D)
:Pt-Change(C,D-ΔY)
:Pt-Change(C,D+ΔY+.000001)
:Pt-Change(C-ΔX,D)
:Pt-Change(C+ΔX+C×C×C×.00000000001,D)


they work reasonably with different zoom commando`s, ZDecimal and ZStandard and ZStandard ZSquare, but it is just some number, so if anyone has a better solution, simpler?

something I do not understand:
in:
:Prompt C,D
:Pt-On(C,D)
:Pt-On(C+ΔX,D)
at ZStandard, ZSquare screen, with the value of 15 for C gives one dot at the x=15 point, but the value of 14.8 for C gives one dot at the x=15 point and one more just the one higher. I would expect just the other way around since 14.8 is lower than 15. or it must be that 15+ΔX exceeds the maximum value to be written.
then the size of ΔX for the screen position 15 is to big, I didn`t expect that.
they haven`t choosen the value of ΔX exact, but they have choosen an optimum value for the division of the best part of the screen, I guess.
so what you need is another value for ΔX that gives decent performance with the more round numbers and over the entire screen.
as the positive X-axel and the negative X-axel, also the positive Y-axel and the negative Y-axel, are not exactly mirror image (only for round numbers) there is doubt about the precise value of ΔX and ΔY. further on if it where simple the value of ΔX and ΔY would have been exstremely correct in the first place. and you cannot check it completely, for each window. it is gonna be complicated anyway.

so the solution of putting crosses on the display would be:
determine the pixel of that certain X-axel value and Y-axel value, by using X-min and X-max and Y-min and Y-max (and/or ΔX, ΔY to determine what screen you`re in and where the pixel lies) and by using pixel test of that value and of the 8 surrounding pixels, because it could be just one pixel furtheron or one pixel nearerby.
so before actually writing the point you determine 9 pixels where it could fall (by using the X and Y axel coördinates to find the pixelvalue and than you have got the 8 around it), store in variables , and then write the point with Pt-Change and test where that point that has just been changed is by using Pxl-Test on those 9 pixels.
then you can use pixel system to controll about the shape of the cross.
you will have to concider the size of the screen.

who disagrees on this term?
Now you can ask yourself the question: why should I put crosses on the screen, since the accuracy is plus or minus 1 digit? Than you must rephrase the question into: why would I put crosses on more or less round numbers on the screen? So make the agreement of using only morelike round numbers.

When you use morelike round numbers it is nonsense to think about pico values. So if the program works fine for numbers until microlevel it is usable.

Then you may use the simple program that writes direct with Pt-Change and a certain adjusted value for ΔX and ΔY. All you have to do is investigate that all the numbers within the desired accuracy work.

Very sad that answers are not very precise the question, as if you use a sief with a hole in it to sift polish powder and then polish and have a big nasty scratch, in fact totally unusable, nice but useless here. I don`t hide away the goal of my conversation so I hope for answers that way.

The reason why my program isn`t very accurate is of course that I am busy investigating what value is an optimum, for it won`t work that precise, precise isn`t necessary, only that you know the bounderies of those accuracies.

There is nothing weard about want to put crosses on your graph.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement