找回密码
 快速注册
搜索
楼主: abababa

学习Asymptote时的一些问题

[复制链接]

413

主题

1558

回帖

1万

积分

积分
11498

显示全部楼层

 楼主| abababa 发表于 2023-4-16 13:13
hbghlyj 发表于 2023-4-15 21:53
Asymptote的作者希望您能否在调试器(例如 gdb)中不使用 -mask 运行并告诉我 glrender.cc 中哪个库生成 ...

这个“调试器”是什么,是编程方面的吗?我不懂这些啊。

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2023-4-18 00:55
abababa 发表于 2023-4-16 06:13
这个“调试器”是什么,是编程方面的吗?我不懂这些啊。

我刚找到问题所在了discussion

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2023-4-18 03:28
abababa 发表于 2023-4-3 14:27
这个在我这里运行,出现以下问题:
shipout3(prefix,f,preview ? nativeformat() : format,


在什么操作系统上测试的
John Bowman说他在Ubuntu 22.04.2和Fedora上测试过,没有出现这个问题。
Great to hear!

You could go deeper into trEndFile in tr.cc and try to isolate which call (maybe glReadPixels?)
is buggy. We'll make this conditional on HAVE_LIBOSMESA since it is defect only in that software rendering library (although I can't reproduce it under ubuntu 22.04.2 or on Fedora).

413

主题

1558

回帖

1万

积分

积分
11498

显示全部楼层

 楼主| abababa 发表于 2023-4-21 17:05
hbghlyj 发表于 2023-4-18 03:28
在什么操作系统上测试的
John Bowman说他在Ubuntu 22.04.2和Fedora上测试过,没有出现这个问题。 ...

windows7,但是没有显卡,这个电脑是集成显卡的。

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2023-4-23 02:18


明白了👌我也没有显卡,所以我们遇到同样的问题
John说:
if you don't have a graphics card. In that case, you should ./configure --enable-offscreen

413

主题

1558

回帖

1万

积分

积分
11498

显示全部楼层

 楼主| abababa 发表于 2023-4-23 12:03
hbghlyj 发表于 2023-4-23 02:18
明白了👌我也没有显卡,所以我们遇到同样的问题
John说:

哦,那是不是加上那个-mask,就表示不用显卡的那个了?

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2023-4-23 19:06
abababa 发表于 2023-4-23 05:03
哦,那是不是加上那个-mask,就表示不用显卡的那个了?


不是. 在Command-line option中可以查到-mask意思是Mask fpu exception

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2023-4-24 04:07
hejoseph 发表于 2023-4-6 07:14
你可以试试运行下这个asy代码:
size(200);
import graph3;
real C0=(1+sqrt(5))/4;
real C1=(1+sqrt(5))/2;
real C2=(5+sqrt(5))/4;
real C3=(2+sqrt(5))/2;
real C4=3*(1+sqrt(5))/4;
triple[] V={(0.5,0.0,C4),(0.5,0.0,-C4),(-0.5,0.0,C4),(-0.5,0.0,-C4),(C4,0.5,0.0),(C4,-0.5,0.0),(-C4,0.5,0.0),(-C4,-0.5,0.0),(0.0,C4,0.5),(0.0,C4,-0.5),(0.0,-C4,0.5),(0.0,-C4,-0.5),(1.0,C0,C3),(1.0,C0,-C3),(1.0,-C0,C3),(1.0,-C0,-C3),(-1.0,C0,C3),(-1.0,C0,-C3),(-1.0,-C0,C3),(-1.0,-C0,-C3),(C3,1.0,C0),(C3,1.0,-C0),(C3,-1.0,C0),(C3,-1.0,-C0),(-C3,1.0,C0),(-C3,1.0,-C0),(-C3,-1.0,C0),(-C3,-1.0,-C0),(C0,C3,1.0),(C0,C3,-1.0),(C0,-C3,1.0),(C0,-C3,-1.0),(-C0,C3,1.0),(-C0,C3,-1.0),(-C0,-C3,1.0),(-C0,-C3,-1.0),(0.5,C1,C2),(0.5,C1,-C2),(0.5,-C1,C2),(0.5,-C1,-C2),(-0.5,C1,C2),(-0.5,C1,-C2),(-0.5,-C1,C2),(-0.5,-C1,-C2),(C2,0.5,C1),(C2,0.5,-C1),(C2,-0.5,C1),(C2,-0.5,-C1),(-C2,0.5,C1),(-C2,0.5,-C1),(-C2,-0.5,C1),(-C2,-0.5,-C1),(C1,C2,0.5),(C1,C2,-0.5),(C1,-C2,0.5),(C1,-C2,-0.5),(-C1,C2,0.5),(-C1,C2,-0.5),(-C1,-C2,0.5),(-C1,-C2,-0.5)};
draw(V[0]--V[2],black);
draw(V[0]--V[12],black);
draw(V[0]--V[14],black);
draw(V[1]--V[3],black);
draw(V[1]--V[13],black);
draw(V[1]--V[15],black);
draw(V[2]--V[16],black);
draw(V[2]--V[18],black);
draw(V[3]--V[17],black);
draw(V[3]--V[19],black);
draw(V[4]--V[5],black);
draw(V[4]--V[20],black);
draw(V[4]--V[21],black);
draw(V[5]--V[22],black);
draw(V[5]--V[23],black);
draw(V[6]--V[7],black);
draw(V[6]--V[24],black);
draw(V[6]--V[25],black);
draw(V[7]--V[26],black);
draw(V[7]--V[27],black);
draw(V[8]--V[9],black);
draw(V[8]--V[28],black);
draw(V[8]--V[32],black);
draw(V[9]--V[29],black);
draw(V[9]--V[33],black);
draw(V[10]--V[11],black);
draw(V[10]--V[30],black);
draw(V[10]--V[34],black);
draw(V[11]--V[31],black);
draw(V[11]--V[35],black);
draw(V[12]--V[36],black);
draw(V[12]--V[44],black);
draw(V[13]--V[37],black);
draw(V[13]--V[45],black);
draw(V[14]--V[38],black);
draw(V[14]--V[46],black);
draw(V[15]--V[39],black);
draw(V[15]--V[47],black);
draw(V[16]--V[40],black);
draw(V[16]--V[48],black);
draw(V[17]--V[41],black);
draw(V[17]--V[49],black);
draw(V[18]--V[42],black);
draw(V[18]--V[50],black);
draw(V[19]--V[43],black);
draw(V[19]--V[51],black);
draw(V[20]--V[44],black);
draw(V[20]--V[52],black);
draw(V[21]--V[45],black);
draw(V[21]--V[53],black);
draw(V[22]--V[46],black);
draw(V[22]--V[54],black);
draw(V[23]--V[47],black);
draw(V[23]--V[55],black);
draw(V[24]--V[48],black);
draw(V[24]--V[56],black);
draw(V[25]--V[49],black);
draw(V[25]--V[57],black);
draw(V[26]--V[50],black);
draw(V[26]--V[58],black);
draw(V[27]--V[51],black);
draw(V[27]--V[59],black);
draw(V[28]--V[36],black);
draw(V[28]--V[52],black);
draw(V[29]--V[37],black);
draw(V[29]--V[53],black);
draw(V[30]--V[38],black);
draw(V[30]--V[54],black);
draw(V[31]--V[39],black);
draw(V[31]--V[55],black);
draw(V[32]--V[40],black);
draw(V[32]--V[56],black);
draw(V[33]--V[41],black);
draw(V[33]--V[57],black);
draw(V[34]--V[42],black);
draw(V[34]--V[58],black);
draw(V[35]--V[43],black);
draw(V[35]--V[59],black);
draw(V[36]--V[40],black);
draw(V[37]--V[41],black);
draw(V[38]--V[42],black);
draw(V[39]--V[43],black);
draw(V[44]--V[46],black);
draw(V[45]--V[47],black);
draw(V[48]--V[50],black);
draw(V[49]--V[51],black);
draw(V[52]--V[53],black);
draw(V[54]--V[55],black);
draw(V[56]--V[57],black);
draw(V[58]--V[59],black);
draw(surface(V[0]--V[14]--V[46]--V[44]--V[12]--cycle),blue);
draw(surface(V[1]--V[13]--V[45]--V[47]--V[15]--cycle),blue);
draw(surface(V[2]--V[16]--V[48]--V[50]--V[18]--cycle),blue);
draw(surface(V[3]--V[19]--V[51]--V[49]--V[17]--cycle),blue);
draw(surface(V[4]--V[21]--V[53]--V[52]--V[20]--cycle),blue);
draw(surface(V[5]--V[22]--V[54]--V[55]--V[23]--cycle),blue);
draw(surface(V[6]--V[24]--V[56]--V[57]--V[25]--cycle),blue);
draw(surface(V[7]--V[27]--V[59]--V[58]--V[26]--cycle),blue);
draw(surface(V[8]--V[32]--V[40]--V[36]--V[28]--cycle),blue);
draw(surface(V[9]--V[29]--V[37]--V[41]--V[33]--cycle),blue);
draw(surface(V[10]--V[30]--V[38]--V[42]--V[34]--cycle),blue);
draw(surface(V[11]--V[35]--V[43]--V[39]--V[31]--cycle),blue);
draw(surface(V[0]--V[2]--V[18]--V[42]--V[38]--V[14]--cycle),lightred);
draw(surface(V[0]--V[12]--V[36]--V[40]--V[16]--V[2]--cycle),lightred);
draw(surface(V[1]--V[3]--V[17]--V[41]--V[37]--V[13]--cycle),lightred);
draw(surface(V[1]--V[15]--V[39]--V[43]--V[19]--V[3]--cycle),lightred);
draw(surface(V[20]--V[44]--V[46]--V[22]--V[5]--V[4]--cycle),lightred);
draw(surface(V[20]--V[52]--V[28]--V[36]--V[12]--V[44]--cycle),lightred);
draw(surface(V[23]--V[47]--V[45]--V[21]--V[4]--V[5]--cycle),lightred);
draw(surface(V[23]--V[55]--V[31]--V[39]--V[15]--V[47]--cycle),lightred);
draw(surface(V[24]--V[48]--V[16]--V[40]--V[32]--V[56]--cycle),lightred);
draw(surface(V[24]--V[6]--V[7]--V[26]--V[50]--V[48]--cycle),lightred);
draw(surface(V[27]--V[51]--V[19]--V[43]--V[35]--V[59]--cycle),lightred);
draw(surface(V[27]--V[7]--V[6]--V[25]--V[49]--V[51]--cycle),lightred);
draw(surface(V[29]--V[53]--V[21]--V[45]--V[13]--V[37]--cycle),lightred);
draw(surface(V[29]--V[9]--V[8]--V[28]--V[52]--V[53]--cycle),lightred);
draw(surface(V[30]--V[54]--V[22]--V[46]--V[14]--V[38]--cycle),lightred);
draw(surface(V[30]--V[10]--V[11]--V[31]--V[55]--V[54]--cycle),lightred);
draw(surface(V[33]--V[57]--V[56]--V[32]--V[8]--V[9]--cycle),lightred);
draw(surface(V[33]--V[41]--V[17]--V[49]--V[25]--V[57]--cycle),lightred);
draw(surface(V[34]--V[58]--V[59]--V[35]--V[11]--V[10]--cycle),lightred);
draw(surface(V[34]--V[42]--V[18]--V[50]--V[26]--V[58]--cycle),lightred);


在这段Asymptote代码中,给出凸多面体的顶点,然后指定每条棱和每个面.
在Mathematica中有ConvexHullMesh可以仅给定顶点画出凸多面体.
例如,画出一个四面体,只需给定它的顶点
  1. p = {{2, 1, 6}, {4, 3, 0}, {5, 2, 5}, {3, 5, 4}}
  2. chull = ConvexHullMesh[p]
复制代码

在Asymptote中,如何制作一个函数,仅给定顶点画出凸多面体?

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2023-5-8 01:47
计算 9! 和 10! 都没问题
画factorial(floor(x))的图象,0≤x≤9得到很长的PDF (2.6 × 128,015.3 mm)
$type out.pdf (3.19 KB, 下载次数: 1)
画factorial(floor(x))的图象,0≤x≤10报错
  1. import graph;draw(graph(new real(real x){return factorial(floor(x));},2,10));
复制代码

Unrecoverable error: limitcheck in .putdeviceprops
  _shipout(prefix,f,currentpatterns,format,wait,view,t);
          ^
C:\Program Files\Asymptote/plain_shipout.asy: 116.11: runtime: shipout failed

因为画的PDF长度超限了

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2023-5-10 05:01

asin(1.000001) = nan🙂

> unitsize(1cm)
> real f(real x){return asin(x);}
> import graph
> draw(graph(f,0,0.5))
成功
> draw(graph(f,0,0.9));
成功
> draw(graph(f,0,1.));
成功 因为$\text{asin}(1)=π/2$
> draw(graph(f,0,1.000001));
Error: /typecheck in /--EPSBoundingBoxCrop--
Operand stack:
   --nostringval--   (%%BoundingBox: -nan nan nan -nan)   --dict:1/2(ro)(G)--   --nostringval--   --nostringval--   (%%BoundingBox: -nan nan nan -nan)   1   -nan   nan   -nan   nan   -nan
Execution stack:
   %interp_exit   .runexec2   --nostringval--   EPSBoundingBoxCrop   --nostringval--   2   %stopped_push   --nostringval--   EPSBoundingBoxCrop   EPSBoundingBoxCrop   false   1   %stopped_push   1990   1   3   %oparray_pop   1989   1   3   %oparray_pop   1988   1   3   %oparray_pop   EPSBoundingBoxCrop   1977   1   3   %oparray_pop   1833   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   EPSBoundingBoxCrop   --nostringval--   2   %stopped_push   --nostringval--   %ztokenexec_continue   (scanner state)   EPSBoundingBoxCrop   EPSBoundingBoxCrop   EPSBoundingBoxCrop   EPSBoundingBoxCrop   1986   8   3   %oparray_pop   EPSBoundingBoxCrop   1984   11   3   %oparray_pop   EPSBoundingBoxCrop
Dictionary stack:
   --dict:761/1123(ro)(G)--   --dict:0/20(G)--   --dict:79/200(L)--
Current allocation mode is local
Current file position is 57
GPL Ghostscript 9.54.0: Unrecoverable error, exit code 1
  _shipout(prefix,f,currentpatterns,format,wait,view,t);
          ^
C:\Program Files\Asymptote/plain_shipout.asy: 116.11: runtime: shipout failed

奇怪的是,Asymptote并没有抛出浮点数异常,而是正常输出了一个eps文件,但是这个eps文件的bounding box值为nan,所以ghostscript会抛出错误。

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2023-5-12 16:24
@KindleIsNotKind
3 years ago
About: 在 Geometry.asy 的基础上增加了一些函数,主要为了能更方面的绘制数学竞赛中的平面几何问题
More-Functions-for-Asymptote-Geometry.asy

手机版|悠闲数学娱乐论坛(第3版)

GMT+8, 2025-3-4 12:21

Powered by Discuz!

× 快速回复 返回顶部 返回列表