小编Rob*_*nie的帖子

如何在画布上画圆圈?

我使用javascript和画布绘制数学设计的刻度(用于测量扭矩,它包括牛顿米和英尺 - 磅).我一直在使用三角函数定位我的刻度线arc,并自然地使用绘制弧形线.问题出现在他们需要排队的时候,但是有一些奇怪的失真.然后我绘制了一个非常大的圆圈并将其与GIMP中的圆形选择进行比较,并且存在失真.圆圈周围每45度一致,但在这些节点之间,画布绘制的圆圈向外偏离,就像八角形可以向外圆形太远以近似圆形.

为什么会出现这些扭曲?如何在画布上绘制一个真正的圆形圆圈?

这是我用来生成扭曲圆圈的代码.

<!DOCTYPE html>
<html>
  <body>
    <canvas width=8000 height=8000 id='myCanvas'></canvas>
    <script>
      var canvas = document.getElementById('myCanvas');
      var context = canvas.getContext('2d');
      context.beginPath();
      context.arc(4000, 4000, 3200, 0, Math.PI*2, false);
      context.lineWidth = 1;
      context.strokeStyle = '#ff0000';
      context.lineCap = 'square';
      context.stroke();
    </script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

这可能不是最小的,我不知道context.lineCap它的相关性,但它是基于此代码的遗迹.以下屏幕截图显示了GIMP绘制的圆与Chrome绘制的圆之间的区别 截图

javascript html5 canvas

13
推荐指数
1
解决办法
987
查看次数

如何在干净的环境中从C调用bash?

我正在尝试设置我的计算机,以便我可以使用连接到python脚本的外部设备对自己进行身份验证.我开始通过更换login程序inittab用我自己的计划,我已经能够进入一个bash shell的.问题是,它没有获得像(我推测)那样的新环境login.我知道有办法让我弄乱环境,但我还没有找到一种方法来给它一个"默认"配置,即使这样的事情是有道理的.

c linux

5
推荐指数
1
解决办法
325
查看次数

CONS对象可以用作哈希表的键吗?

我最近一直在玩LISP,我想通过缓存它的输出来尝试优化一个非常低效的递归函数,所以它只运行一次参数的每个组合.我想将结果保存到哈希表中,使用(LIST a b)或(CONS a b)作为键.我的问题是,这甚至可能吗?我读过的文档会让我相信它,因为我读到的文档定义key为"对象",并将"对象"定义为构造的东西cons.所以我试了一下.

(defparameter *table* (make-hash-table))
(setf (gethash (list 1 2) *table*) 123)
(format t "~S~%" (gethash (list 1 2) *table*))
Run Code Online (Sandbox Code Playgroud)

它给了我NIL,当我期待123.如果我更换(list 1 2)了cons它仍然无法正常工作,但是当我使用一个普通的整数,它工作正常.

我正在使用GCL 2.6.12

lisp common-lisp gnu-common-lisp

3
推荐指数
1
解决办法
133
查看次数

我该如何限制fscanf解释的字符数?

我正在编写一个程序来读取stdin,然后写下它读取的内容stdout,取消它找到的任何转义的十六进制数字.我想读的所有数字都是8位.这就是我到目前为止所拥有的

while((c = fgetc(stdin)) != EOF) {
    if(c == '%') {
        fscanf(stdin,"%x",&r);
        printf("%i \n",r);
    }
}
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作,除了当我写一些类似于%FFF标准输入的内容时,它将其读取为3位十六进制数.我该如何限制fscanf只读2个字符?我曾考虑将接下来的2个字符读入缓冲区sscanf'ing,但这对我来说感觉相当不优雅.

c stdio

2
推荐指数
1
解决办法
1179
查看次数

标签 统计

c ×2

canvas ×1

common-lisp ×1

gnu-common-lisp ×1

html5 ×1

javascript ×1

linux ×1

lisp ×1

stdio ×1