a21_hlx003_1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* HLX-003の補足ページ#1
-(by [[K]], 2021.11.30)
** (1) C言語ではできるけど、HLX-003ではできないこと(将来...
-[1]浮動小数点演算はできません、ポインタ演算も代入しかで...
-[2]配列は一次元のみです。配列変数に対して、++や--はでき...
-[3]標準関数はほとんど使えません。
-[4]関数は void aMain() { ... } しか宣言できません。宣言...
-[5]構造体も使えません。
-[6]配列宣言時の初期化では、定数式が使えません。定数は使...
** (2) mandel1_opt.c
#include <acl.c>
#ifdef AUSE_HLX
regVarOpt(0, zx, zy, xx, yy, cx, cy, n, sn); // for ...
regVarOpt(1, n, zx, zy, x, y, sy, sx, c, sn); // for...
regVarOpt(15, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); /...
regVarOpt(16, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); /...
regVarOpt(17, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); /...
#endif
void aMain()
{
AWindow *w = aOpenWin(512, 384, "mandel", 1);
AInt x, y;
for (y = 0; y < 384; y++) {
for (x = 0; x < 512; x++) {
AInt sn = 0, sx, sy, n;
AInt c, cx, cy, zx, zy, xx, yy;
for (sx = 0; sx < 4; sx++) {
// cx = (x * 4 + sx) * 56 + 4673536;
cx = x; cx *= 4; cx += sx; cx *= 56; cx ...
for (sy = 0; sy < 4; sy++) {
// cy = (y * 4 + sy) * (-56) - 124928;
cy = y; cy *= 4; cy += sy; cy *= -56...
zx = cx; zy = cy;
for (n = 1; n < 447; n++) {
xx = zx * zx; xx = xx >> 24; // ...
yy = zy * zy; yy = yy >> 24; // ...
if (xx + yy > 0x4000000) break;
zy *= zx; zy = zy >> 23; // aMul...
zx = xx; zx += cx; zx -= yy; // ...
zy += cy;
}
sn += n;
}
}
n = sn >> 4;
c = aRgb8(n, 0, 0);
if (n >= 256) {
c = aRgb8(0, 0, 0);
if (n < 447)
c = aRgb8(255, n - 255, 0);
}
aSetPix0(w, x, y, c);
}
// aLeapFlushAll(w, 128);
}
aPrintTime();
aWait(-1);
}
終了行:
* HLX-003の補足ページ#1
-(by [[K]], 2021.11.30)
** (1) C言語ではできるけど、HLX-003ではできないこと(将来...
-[1]浮動小数点演算はできません、ポインタ演算も代入しかで...
-[2]配列は一次元のみです。配列変数に対して、++や--はでき...
-[3]標準関数はほとんど使えません。
-[4]関数は void aMain() { ... } しか宣言できません。宣言...
-[5]構造体も使えません。
-[6]配列宣言時の初期化では、定数式が使えません。定数は使...
** (2) mandel1_opt.c
#include <acl.c>
#ifdef AUSE_HLX
regVarOpt(0, zx, zy, xx, yy, cx, cy, n, sn); // for ...
regVarOpt(1, n, zx, zy, x, y, sy, sx, c, sn); // for...
regVarOpt(15, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); /...
regVarOpt(16, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); /...
regVarOpt(17, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); /...
#endif
void aMain()
{
AWindow *w = aOpenWin(512, 384, "mandel", 1);
AInt x, y;
for (y = 0; y < 384; y++) {
for (x = 0; x < 512; x++) {
AInt sn = 0, sx, sy, n;
AInt c, cx, cy, zx, zy, xx, yy;
for (sx = 0; sx < 4; sx++) {
// cx = (x * 4 + sx) * 56 + 4673536;
cx = x; cx *= 4; cx += sx; cx *= 56; cx ...
for (sy = 0; sy < 4; sy++) {
// cy = (y * 4 + sy) * (-56) - 124928;
cy = y; cy *= 4; cy += sy; cy *= -56...
zx = cx; zy = cy;
for (n = 1; n < 447; n++) {
xx = zx * zx; xx = xx >> 24; // ...
yy = zy * zy; yy = yy >> 24; // ...
if (xx + yy > 0x4000000) break;
zy *= zx; zy = zy >> 23; // aMul...
zx = xx; zx += cx; zx -= yy; // ...
zy += cy;
}
sn += n;
}
}
n = sn >> 4;
c = aRgb8(n, 0, 0);
if (n >= 256) {
c = aRgb8(0, 0, 0);
if (n < 447)
c = aRgb8(255, n - 255, 0);
}
aSetPix0(w, x, y, c);
}
// aLeapFlushAll(w, 128);
}
aPrintTime();
aWait(-1);
}
ページ名: