テーマ#0003: グラデーション画像の表示

  • (by K, 2016.04.20)

基本情報

  • テーマ提示日: 2016.04.20(水)
  • プログラム例示日:
  • 発表会予定日: 調整中(おそらく6月の平日の夕刻)
    • 会場はサイボウズ日本橋オフィス27Fを予定

背景

  • さてかねてより計画していたレイトレーシングのテーマを設定しようと思っていたところ、それより前にグラフィックスが使える環境がどのくらいあるのか調査すべきだと思い立ち、それならばまずはレイトレーシングなどの複雑な課題ではなく、極端にシンプルな課題にすべきだと考えました。
    • ということでレイトレーシングは次回に!

テーマ説明

  • 画面の256x256の正方形領域に、それぞれ異なる色の点を描画してください。
  • プログラムを単純化しようとすると、結果的に画像がグラデーション・パターンになると思われます。それで構いません。
    • 例: http://hdp.osask.jp/download/a.png
  • 標準的なC言語では、グラフィックス描画手段を持たないので、代わりにメジャーなフォーマットの画像ファイルを生成してください。それでも課題をクリアしているとみなします。画像ファイルとしてメジャーかどうかは、たとえば一般的なブラウザで表示できるか、などを基準とします。

C言語による例示(ファイル生成版)

#include <stdio.h>

char b[3], a[54] = {
    0x42, 0x4d, 0x36, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, // BITMAPFILEHEADER
    0x28, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x18 // BITMAPINFOHEADER
    // 残りはすべて0
};

int main()
{
    int i;
    FILE *fp = fopen("a.bmp", "wb");
    fwrite(a, 1, 54, fp);
    for (i = 0; i < 256 * 256; i++) {
        b[2] = i & 255; // red
        b[1] = 255 - ((i >> 8) & 255); // green
        fwrite(b, 1, 3, fp);
    }
    fclose(fp);
    return 0;	
}

C言語による例示(blikeライブラリ利用版)

#include "blike.h"

blMain()
{
    int x, y;
    openWin(256, 256);
    for (y = 0; y < 256; y++) {
        for (x = 0; x < 256; x++)
            setPix(x, y, rgb(x, y, 0));
    }
    wait(-1);
}
  • [註] c_blike_01fだと、rbg → bl_rgb の#defineを書き間違えているので、上記のままではビルドができない。
    • バグを修正した c_blike_01g を準備予定です。

そのほかの特記事項

  • OSECPU-VMでは8バイトで上記画像を表示できます。また色が違ってもよければ課題を満たす表示をするプログラムを6バイトで書くこともできます。

エントリ状況

  • この欄はKが随時編集しますので、勝手に編集しないでください。エントリーしたい、自己記録を更新した、Kの書き間違いを見つけたので直して、などは、下記のこめんと欄にお願いします。
    • 何バイトを達成したか、使ったツールは何か、可能であれば発表会に出たいか、などを明記してください。
描画Processing53バイト2016-06-08 (水) 16:59:18ryna
描画OCaml143バイト2016-06-02 (木) 16:14:45rynaX11経由
描画JavaScript176バイト2016-06-07 (火) 23:43:06ttwilbcanvas利用
描画C#217バイト2016-06-02 (木) 00:59:50ttwilb
描画Java262バイト2016-06-03 (金) 16:06:47ttwilb
ファイルRuby47バイト2016-05-25 (水) 16:42:24rynaPPM標準出力
ファイルC言語62バイト2016-06-03 (金) 16:06:47ttwilbPPM標準出力
ファイルJ言語74バイト2016-05-27 (金) 22:42:17hikaliuma.ppm生成
ファイルシェルスクリプト86バイト2016-06-08 (水) 17:28:48ttwilbPPM標準出力
ファイルPostScript100バイト2016-06-02 (木) 01:02:48ttwilb描画的な要素もある
ファイルOCaml152バイト2016-05-29 (日) 00:24:48ttwilbPPM標準出力

こめんと欄

  • ひとまずJavaScript, 246文字でお願いします! -- hikalium 2016-04-29 (金) 17:44:53
  • J言語, 138文字, ファイル生成でお願いします! -- hikalium 2016-04-30 (土) 00:45:14
  • J言語, 128文字に更新します! -- hikalium 2016-04-30 (土) 01:11:12
  • PostScriptとかでやったら面白いかな? ブラウザでは見えないかもしれないけど・・・。いやこれは画像ファイルフォーマットではなく、プログラミング言語なのだ、という主張をすれば行けそう。 -- K 2016-04-30 (土) 10:36:37
  • PostScript, 121バイトできました!(描画かつファイル)Macのプレビューでは一応表示できます! -- hikalium 2016-05-02 (月) 13:45:18
  • PostScriptありがとうござます! もはやhikaliumさんの独壇場!! 他の人はまだエントリーしないのかな? -- K 2016-05-09 (月) 11:42:49
  • C言語 91Byteです(標準出力に書き出す形式。) -- ttwilb 2016-05-13 (金) 15:55:03
  • Rubyにて、PPMを標準出力に書き出すのが54バイト、PPMをファイル(a.ppm)に書き出すのが78バイトです。 -- ryna 2016-05-19 (木) 17:44:42
  • 連投になりますが、C言語ではPPM形式を標準出力に書き出すのが78バイト、BMP形式で標準出力に書き出すのが103バイト、BMP形式でファイル(a.bmp)に書き出すのが119バイトです。Cで書いたのは思いっきりMacに依存してます() -- ryna 2016-05-19 (木) 17:47:46
  • ttwilbさんのがすごいと思っていたら、さらに上が来たー! -- K 2016-05-20 (金) 00:34:32
  • C言語 PPM形式標準出力で 81Byteです... rynaさんに及ばず。(ちなみに再起は使ってません) -- ttwilb 2016-05-20 (金) 16:01:02
  • C言語 PPM形式で67Byteです -- ttwilb 2016-05-20 (金) 18:54:14
  • C言語 PPM形式で63Byteです -- ttwilb 2016-05-20 (金) 20:51:18
  • C言語 PPM形式ファイル作成(a.ppm) 81Byteです -- ttwilb 2016-05-20 (金) 21:09:53
  • ttwilbさんの逆襲(?)がすごい! -- K 2016-05-23 (月) 13:39:21
  • J言語もPPM標準出力にすれば、まだまだ戦える? -- K 2016-05-23 (月) 13:40:44
  • 描画形式が盛り上がっていないのですが、HSPとかJavaとかやってみる人はいませんか? -- K 2016-05-23 (月) 13:42:20
  • RubyのPPM標準出力版を、47バイトに更新しました! -- ryna 2016-05-25 (水) 16:42:24
  • すごい…J言語でも勝てそうにない… -- hikalium 2016-05-25 (水) 18:31:48
  • っていうか、Rubyが強すぎ? thm001ではJ言語に次いで2位だったし、thm002でも1位だったし・・・。まあRubyが強いだけではなくて、rynaさんの技術力もすさまじそうだけど・・・。 -- K 2016-05-26 (木) 14:36:35
  • ちなみにJ言語, a.ppm生成で現在74文字です -- hikalium 2016-05-27 (金) 22:42:17
  • ちなみに、指定された言語ではないですが、PPMのstdoutへの書き出しはOCamlで152Byteです。またJavaScript版は185バイトです。ただしCSSのグラデーションを使っているのであまり正確ではないです。Canvasを使って正確に描画する版は208バイトです。 -- ttwilb 2016-05-29 (日) 00:24:48
  • 指定された言語ではないですが、Processingで描画120バイトでした。 -- ttwilb 2016-05-29 (日) 00:46:44
  • この回は、ひとまず許されていない言語でもOKということにします。特に描画のやつがほしいです! -- K 2016-05-30 (月) 12:55:10
  • C#で描画、217バイトです。あと Processingを119バイトに、JavaScriptを206バイトに更新しました。 -- ttwilb 2016-06-02 (木) 00:59:50
  • Java言語で描画283Byteです。PostScriptで100Byteです(Acrobat Proで動作確認) -- ttwilb 2016-06-02 (木) 01:02:48
  • OCamlで描画 (X11経由) が143バイトできました。 -- ryna 2016-06-02 (木) 16:14:45
  • Javaで描画(スタンドアロンのクラスファイル)が268バイトです。 -- ryna 2016-06-02 (木) 17:26:12
  • Processing 81Byteに更新します。Javaを262Byteに更新します。C言語を62Byteに更新します。 -- ttwilb 2016-06-03 (金) 16:06:47
  • シェルスクリプトでPPM標準出力96Byteです -- ttwilb 2016-06-05 (日) 12:59:43
  • ttwilbさんとrynaさんの競争が激しい! -- K 2016-06-06 (月) 14:36:25
  • Javascript(canvas利用型・描画)を192文字に更新します -- hikalium 2016-06-07 (火) 17:28:21
  • CやJavaで勝てなくなってしまったので、Processingに挑戦しました。Processingにて75バイトです。 -- ryna 2016-06-07 (火) 19:16:43
  • 投稿後すぐに気づいてしまったのですが、Processingを73バイトに更新しました。 -- ryna 2016-06-07 (火) 19:23:21
  • Processing, 69バイトに更新しました! -- ttwilb 2016-06-07 (火) 22:44:10
  • JavaScript(canvas), 176Byteに更新します。 -- ttwilb 2016-06-07 (火) 23:43:06
  • Processingを53バイト(63バイトではないです!)に更新します。 -- ryna 2016-06-08 (水) 16:59:18
  • シェルスクリプト、86バイトに更新しました! -- ttwilb 2016-06-08 (水) 17:28:48
  • 本当にこんなサイズで表示できるの??>Processing -- K 2016-06-10 (金) 18:41:06
  • 私のコードに若干当てはまるのですが、「領域外への描画命令の発行」や、「画像ファイルへの余計なバイトの書き込み」などの正否はどうなりますでしょうか? -- ryna 2016-06-10 (金) 22:42:36
  • それと、シェルスクリプト(MacのBash)、PPMテキスト標準出力で61バイトでお願いします。 -- ryna 2016-06-10 (金) 22:46:10
  • 私も色々ためしているのですが、Processingの53バイトは全く見当がつきません! -- ttwilb 2016-06-10 (金) 22:53:07
  • 領域外への描画命令の発行は許可します(それでも変な表示が出ない処理系なら)。余計なバイトの書き込みも、まあいいとします。 -- K 2016-06-10 (金) 23:45:56
  • いや、まあ、変な表示が出てもいいかな・・・。そういうことをするなとは書いていないわけだし・・・。 -- K 2016-06-11 (土) 06:00:40
  • お久しぶりです、シェルスクリプトを59バイトに更新しました! -- ryna 2016-09-01 (木) 10:39:31
  • Free medical insurance http://xnxx.in.net/ xnxx.com Maybe that helps relieve some of the pressure on less-accomplished players, allowing them to sneak in for a major title against more prominent competitors. Maybe that explains how Y.E. Yang rallied to beat Woods at Hazeltine in 2009 when the world's No. 1 player had a lead after 54 holes — the only time he's blown an advantage heading into the final round of a major. -- Christian 2019-06-17 (月) 13:09:54
  • Whereabouts in are you from? http://yuvututube.fun/ yuvutu The Knicks’ backcourt situation is unsettled with Jason Kidd retiring and Pablo Prigioni being an unrestricted free agent. Prigioni, a natural point guard, was inserted in the starting lineup when the Knicks ran off 13 straight wins. He also started 11 of the 12 playoff games. Although he also wants to return to the Knicks he could get a better offer elsewhere. -- Jada 2019-06-30 (日) 03:14:57
  • I work with computers http://redtube.in.net/ red tub Randle made only a few as a rookie. He had a big game early, catching six passes for 82 yards in Week 5 against the Browns while Nicks was out. Then he spent much of the season being dogged by questions about his work ethic — including from some of his own teammates — before finishing strong with a four-catch, 58-yard, two-touchdown effort in the season finale. -- Renaldo 2019-06-30 (日) 03:14:58
  • I'd like to pay this in, please http://lamalinks.fun/ lama links In the circus that is Australian politics, the current prime minister, Kevin Rudd, was elected to the top job in 2007, only to be ousted by his party three years later and replaced by Julia Gillard, the country’s first female leader. -- Linwood 2019-06-30 (日) 09:42:29
  • I'm on holiday http://beeg.in.net/ beeg video It might be that Germany does not race away from the pack this time. Both the government and Bundesbank are forecasting a robust second quarter but then something of a relapse in the third. German inflation figures are due later and will go some way to show how much leeway the European Central Bank has to loosen policy further. The forecast is for the rate to edge down to 1.7 percent, somewhat below the target of close to but below two percent. We also get euro zone business and consumer sentiment readings. -- Charles 2019-06-30 (日) 09:51:30
  • I read a lot http://tiava.in.net/ tiava xxx These neurons formed what the scientists call a “memory engram” where specific neurons undergo physical and chemical changes upon memory-making. Using a technique that we can subsume under “optogenetics,” they marked that engram so that they know which they are, and also to be able to activate them later by shining blue light on them. -- Sofia 2019-06-30 (日) 09:51:33
  • I'll text you later http://xnxx.photography/ xnxx porn NEW DELHI (AP) — Police on Sunday arrested the last of five men wanted in the gang rape of a photojournalist in Mumbai, and said charges would be filed soon in a case that has incensed the public and fueled debate over whether women can be safe in India. -- Eduardo 2019-06-30 (日) 09:51:50
  • How much notice do you have to give? http://femjoy.in.net/ www.femjoy.com In an attempt to avoid a furore over his pay, McEwan immediately waived his annual bonus for the rest of 2013 and for 2014. His bonuses from 2015 onwards will be linked to the share price the taxpayer paid for its 81% stake in the bank. His salary is less than the £1.2m his predecessor received. -- Herschel 2019-06-30 (日) 09:51:51
  • I wanted to live abroad http://rockettube.fun/ rockettube No accidents or injuries have been reported due to the defect and all affected vehicles were manufactured in Japan between 2004 and 2013, Keeffe said, according to the Reuters report. According to the company, the defective accelerator pedals will be replaced and engine-control programming fixed to solve the problem.   -- Bryce 2019-06-30 (日) 10:13:49
  • I can't stand football http://ghettotube.in.net/ ghetto tube "He might sometimes ask advice if he’s going to be late — 'What should I wear?' — but generally speaking, he has a really good sense of what works on him. I think he looks great whatever he does. He literally always looks really, really good." -- Wayne 2019-06-30 (日) 10:13:50
  • When do you want me to start? http://rulertube.fun/ ruler tube Every once and a while a leftist will taunt libertarians by pointing to someplace like Somalia as a “libertarian paradise.”  I do understand that there are many forms of libertarianism, including anarchy, but I think it’s fair to say that most libertarians prefer their governments small, not nonexistent. More like Hong Kong than Somalia. -- Gaston 2019-06-30 (日) 10:13:51
  • Another year http://keandra.in.net/ www.keandra.com Let’s not forget that diplomats owe the city $17 million in unpaid parking tickets. And, since a federal appeals court ruled in 2010 foreign countries don’t need to pay property tax for their Manhattan buildings, containing UN missions and ambassadors’ apartments, the city has lost tens of millions of dollars in tax revenues. -- Gavin 2019-06-30 (日) 10:16:20
  • I'm not working at the moment http://silverdaddies.fun/ silverdaddies Peña Nieto aides are expected to propose tax hikes Sunday that have been on backroom planning tables, largely unnoticed by the public. The new taxes are essential to freeing up the finances of Pemex, the national oil company that provides about a third of the government's budget. But with the economy slumping, perhaps toward recession, any tax hikes are bound to rankle. -- Marcellus 2019-06-30 (日) 10:39:14
  • I work for myself http://madthumbs.fun/ madthumbs Although one can request a table for just your party, most guests are seated with others on the cruise. And for some, it can be the highlight of their week. “Getting you as our dining partners was like winning the lottery,” I overheard one couple gushing to another outside the Britannia Restaurant, where the majority of guests dine. -- Addison 2019-06-30 (日) 11:43:00
  • I'm a housewife http://kratom.in.net/ original harvest kratom “There’s not much we can do about it,” Pedroia told the Globe. “It’s unfortunate. I’m sure it upsets everybody. We’re working our tails off to play at this level and compete and have fun doing it. Some guys won’t do it that way. But it’s only 12 guys in the whole major leagues. -- Alvaro 2019-07-08 (月) 00:56:38
  • I'd like to open a personal account http://wallpapers.in.net/ sexy wallpapers Wales TUC General Secretary Martin Mansfield wrote to all Welsh MPs, stating: “[The] Bill raises important questions regarding our ability to function properly within the context of devolution... Should this Bill be successful, the organisation’s civic role in providing advocacy for working people in Wales risks being severely undermined.” -- Hector 2019-07-08 (月) 16:51:30
  • I'd like to transfer some money to this account http://lamalinks.fun/ lamalinks.com “This important new report reveals a worrying ‘gender gap’ in access,” said Hamadoun I. Touré, secretary-general of a U.N. telecommunications group and co-vice chair of the Broadband Commission. “We need to make sure that all people – and most crucially today’s younger generation – have equitable access to [information and communication technologies]. -- Devin 2019-07-08 (月) 17:20:10
  • Do you know the number for ? http://yuvututube.fun/ yuvutu videos Those youngsters impressed during the preseason, but it will be difficult to get them assimilated quickly. Nothing has been typical or routine yet for the Rangers, and it won’t be for the first month. -- Dominique 2019-07-08 (月) 17:20:12
  • I've got a full-time job http://rockettube.fun/ roket tube "The love Football Manager fans have for the game is intense — I regularly get death threats on Twitter from people who aren't happy with an element of the game or who've just lost in the Champions League final and for some reason think that's my fault. That's pathetic but it shows how much FM means to people, and alongside the abuse we also get a lot of compliments. It's particularly nice hearing from managers and players who claim they have developed their understanding of football from the game. Ole Gunnar Solskjaer, for instance, told us that he developed his understanding of the tactics he uses at Molde from playing Football Manager." -- Calvin 2019-07-08 (月) 17:43:41
  • I'd like to send this parcel to http://xnxx-xnxx.site/ new xnxx “I had the urge to push and I pushed and I told my husband to call 911,” said Desamour, whose due date was Sept. 29.  “I said, ‘Pull over.  She’s here.  She’s here.’” -- Rusty 2019-07-08 (月) 17:46:38

コメントお名前NameLink

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-07-08 (月) 17:46:39 (153d)