Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #140332

Re: Simple 2d C99 fractal plotter...

From "Chris M. Thomasson" <ahh_f_it@crap.nothing>
Newsgroups comp.lang.c
Subject Re: Simple 2d C99 fractal plotter...
Date 2019-01-27 15:37 -0800
Organization A noiseless patient Spider
Message-ID <q2lfcd$fe0$3@dont-email.me> (permalink)
References <q2g2bo$deg$1@dont-email.me> <agO2E.141753$RE1.49405@fx32.am4>

Show all headers | View raw


On 1/25/2019 4:57 PM, Bart wrote:
> On 25/01/2019 22:24, Chris M. Thomasson wrote:
>> Just wondering, when you get some free time, if you can perhaps run 
>> the my experimental plotter code that generates a PPM called 
>> "ct_plane.ppm". And if you can see a fractal in the resulting 
>> rendering. Here is my C99 code:
>>
>> https://pastebin.com/raw/322XAnsT
>> (raw text, pure C99: no ads!)
>>
>> It should just compile with GCC, and run like a charm. It has proper 
>> aspect ratios so one can use any dimensions they want.
>>
>> Can you notice anything wrong with the code below:
> 
>>      FILE* fout = fopen(fname, "w");
>>
>>      if (fout)
>>      {
>>          char const ppm_head[] =
>>              "P3\n"
>>              "# Chris M. Thomasson Simple 2d Plane ver:0.0.0.0 
>> (pre-alpha)";
>>
>>          fprintf(fout, "%s\n%lu %lu\n%u\n",
>>                  ppm_head,
>>                  self->width, self->height,
>>                  255U);
>>
>>          size_t size = self->width * self->height;
>>
>>          for (size_t i = 0; i < size; ++i)
>>          {
>>              unsigned int c = self->buf[i];
>>              fprintf(fout, "%u %u %u  ", c, 0U, 0U);
> 
> Further to the posts about the format, I changed the above lines to:
> 
>      FILE* fout = fopen(fname, "wb");
> 
>      if (fout)
>      {
>          char const ppm_head[] =
>              "P6\n"
>              "# Chris M. Thomasson Simple 2d Plane ver:0.0.0.0 
> (pre-alpha)";
> 
>          fprintf(fout, "%s\n%lu %lu\n%u\n",
>                  ppm_head,
>                  self->width, self->height,
>                  255U);
> 
>          size_t size = self->width * self->height;
> 
>          for (size_t i = 0; i < size; ++i)
>          {
>              unsigned int c = self->buf[i];
>              fprintf(fout, "%c%c%c", 255-c,255-c,255-c);
>          }
> 
> This give a P6 24/binary format (as you said you were going to use RGB). 
> I've also written all planes not just R, and took the liberty of 
> reversing the bytes to get black on white (my preference).
> 
> Note the "wb" for the file mode. (These P4/P5/P6 formats are peculiar in 
> that they mix text and binary data. With "wb", new lines are /not/ 
> written as cr/lf under Windows, but as lf only. I don't know how much 
> that's likely to screw up some ppm viewers.)
> 
> I wasn't sure if %c to write binary bytes would work, but it seems to.
> 
> Loading of this format is considerably faster with my viewer.
> 
> (To generate binary greyscale, use P5 and write only one %c byte per 
> pixel. The file extension should also be pgm, although my viewer is not 
> fussy as it will check the "P" code.)
[...]

Your conversion to P6 24/binary works great. The black on white is nice 
as well. I really need to put in some log-density coloring.

Thanks Bart.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Simple 2d C99 fractal plotter... "Chris M. Thomasson" <ahh_f_it@crap.nothing> - 2019-01-25 14:24 -0800
  Re: Simple 2d C99 fractal plotter... "Chris M. Thomasson " <ahh_f_it@crap.nothing> - 2019-01-25 15:11 -0800
  Re: Simple 2d C99 fractal plotter... Eli the Bearded <*@eli.users.panix.com> - 2019-01-25 23:50 +0000
    Re: Simple 2d C99 fractal plotter... "Chris M. Thomasson" <ahh_f_it@crap.nothing> - 2019-01-25 16:33 -0800
    Re: Simple 2d C99 fractal plotter... Bart <bc@freeuk.com> - 2019-01-26 00:45 +0000
      Re: Simple 2d C99 fractal plotter... "Chris M. Thomasson " <ahh_f_it@crap.nothing> - 2019-01-25 16:55 -0800
        Re: Simple 2d C99 fractal plotter... Bart <bc@freeuk.com> - 2019-01-26 00:59 +0000
      Re: Simple 2d C99 fractal plotter... Jorgen Grahn <grahn+nntp@snipabacken.se> - 2019-01-26 20:29 +0000
        Re: Simple 2d C99 fractal plotter... Bart <bc@freeuk.com> - 2019-01-26 21:37 +0000
          Re: Simple 2d C99 fractal plotter... Jorgen Grahn <grahn+nntp@snipabacken.se> - 2019-01-27 12:11 +0000
            Re: Simple 2d C99 fractal plotter... Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-01-27 13:40 +0000
  Re: Simple 2d C99 fractal plotter... Bart <bc@freeuk.com> - 2019-01-26 00:57 +0000
    Re: Simple 2d C99 fractal plotter... "Chris M. Thomasson" <ahh_f_it@crap.nothing> - 2019-01-27 15:37 -0800
  Re: Simple 2d C99 fractal plotter... Bart <bc@freeuk.com> - 2019-01-26 12:35 +0000
    Re: Simple 2d C99 fractal plotter... David Brown <david.brown@hesbynett.no> - 2019-01-27 13:20 +0100
      Re: Simple 2d C99 fractal plotter... Bart <bc@freeuk.com> - 2019-01-27 14:13 +0000
        Re: Simple 2d C99 fractal plotter... David Brown <david.brown@hesbynett.no> - 2019-01-27 16:36 +0100
          Re: Simple 2d C99 fractal plotter... "Chris M. Thomasson" <ahh_f_it@crap.nothing> - 2019-01-27 14:28 -0800
            Re: Simple 2d C99 fractal plotter... Bart <bc@freeuk.com> - 2019-01-27 23:53 +0000
          Re: Simple 2d C99 fractal plotter... "Chris M. Thomasson" <invalid_chris_thomasson_invalid@invalid.com> - 2019-01-29 13:11 -0800
            Re: Simple 2d C99 fractal plotter... Bart <bc@freeuk.com> - 2019-01-29 22:23 +0000
              Re: Simple 2d C99 fractal plotter... "Chris M. Thomasson" <invalid_chris_thomasson_invalid@invalid.com> - 2019-02-04 15:30 -0800
                Re: Simple 2d C99 fractal plotter... Bart <bc@freeuk.com> - 2019-02-05 01:26 +0000
                Re: Simple 2d C99 fractal plotter... Ian Collins <ian-news@hotmail.com> - 2019-02-05 16:14 +1300
                Re: Simple 2d C99 fractal plotter... David Brown <david.brown@hesbynett.no> - 2019-02-05 11:38 +0100
                Re: Simple 2d C99 fractal plotter... Bart <bc@freeuk.com> - 2019-02-05 11:14 +0000
                Re: Simple 2d C99 fractal plotter... David Brown <david.brown@hesbynett.no> - 2019-02-05 14:35 +0100
                Re: Simple 2d C99 fractal plotter... Bart <bc@freeuk.com> - 2019-02-05 15:06 +0000
                Re: Simple 2d C99 fractal plotter... David Brown <david.brown@hesbynett.no> - 2019-02-05 17:02 +0100
                Re: Simple 2d C99 fractal plotter... Bart <bc@freeuk.com> - 2019-02-05 19:07 +0000
                Re: Simple 2d C99 fractal plotter... Ian Collins <ian-news@hotmail.com> - 2019-02-06 08:12 +1300
                Re: Simple 2d C99 fractal plotter... Keith Thompson <kst-u@mib.org> - 2019-02-05 12:49 -0800
                Re: Simple 2d C99 fractal plotter... David Brown <david.brown@hesbynett.no> - 2019-02-05 22:39 +0100
        Re: Simple 2d C99 fractal plotter... Keith Thompson <kst-u@mib.org> - 2019-01-27 13:09 -0800
  Re: Simple 2d C99 fractal plotter... Bart <bc@freeuk.com> - 2019-01-26 18:53 +0000
    Re: Simple 2d C99 fractal plotter... "Chris M. Thomasson" <ahh_f_it@crap.nothing> - 2019-01-26 18:21 -0800
  Re: Simple 2d C99 fractal plotter... "Chris M. Thomasson" <invalid_chris_thomasson_invalid@invalid.com> - 2019-01-28 22:20 -0800
    Re: Simple 2d C99 fractal plotter... "Chris M. Thomasson" <invalid_chris_thomasson_invalid@invalid.com> - 2019-01-28 22:55 -0800
      Re: Simple 2d C99 fractal plotter... "Chris M. Thomasson" <invalid_chris_thomasson_invalid@invalid.com> - 2019-01-28 23:03 -0800
    Re: Simple 2d C99 fractal plotter... "Chris M. Thomasson" <invalid_chris_thomasson_invalid@invalid.com> - 2019-02-06 22:37 -0800
      Re: Simple 2d C99 fractal plotter... "Chris M. Thomasson" <invalid_chris_thomasson_invalid@invalid.com> - 2019-02-11 13:44 -0800

csiph-web