如何使用Processing.Js制作四边形?

卡洛斯·卡尔森(Carlos Carlsen)

我想用Processing.JS制作一个Tetradecagon,一个具有14个边的​​多边形。
(我想使Tetradecagon像下面的图片所示!)

使用我要复制的图像中给出的数字,我得出结论,每片(我不知道它的专有名称)的角度为25.714285714°.....

25和10/14 = 25并且5/7-5/7(十进制)= 0.714285714
因此,我得出了25.714285714°


现在,在Processing.JS中,我想使用一个while循环:



var r = 0;

var draw = function() {

translate(200,200);  
while(r < 361){
rotate(r);
r = r + 25.714285714;
line(200,0,200,200);
}

};

在这里,我设置了一个变量rr将是该rotate()函数的变量while循环将继续下去,直到r达到360 -这将允许在变化r的角度,通过25.714285714增加°,而r < 361
但是,可悲的是,这没有发生。
我在画布上看到的是从屏幕上拍摄的那条线。

(编辑)我translate(200,200);while()循环的上方添加-这很有帮助,但是线条仍然看起来不像上面的图片。

线的第二点不在中心。整个生产线正在转移。我只希望将第一个(顶部)点移动给定的角度变化。

我如何更改代码以实现自己的目标?
任何帮助将不胜感激-感谢您的时间!

PS这是我用当前代码的结果-


在此处输入图片说明

Mike'Pomax'Kamermans

Processing.js仅用于运行Processing代码。这看起来像是处理代码和Javascript代码的混合体,所以我的第一个建议是“编写实际的处理代码”。

话虽如此,如果您想基于坐标旋转来执行此操作,请看一下14边形:它是14个重复的三角形,因此分析一个三角形并将其绘制14次。任何三角形切片都由(必要的)距离r(外接圆的半径)处从“中心”到“ 14边形上的顶点”的线定义。因此,给定14-gon上的一个顶点(r,0),下一个顶点(nx,ny)在哪里?

简单的数学:

first vertex = (x, y) = (r,0)
next vertex = (nx,ny) = (r,0) rotated over (0,0) by (phi = tau/14)

(我在tau这里使用它是因为它是用于编程目的的更为方便的常量。它等于2*pi,因此代表了一个完整的圆,而不是一个半圆)

现在,使用基本三角函数计算旋转坐标:

nx = r * cos(phi) - 0 * sin(phi) = r * cos(phi)
ny = r * sin(phi) + 0 * cos(phi) = r * sin(phi)

好了,做完了。而且此nx,ny计算显然不是特定于number的14,而是关于任意角度的,因此让我们对解决方案进行编码,使其适用于任何n边多边形:

void setup() {
  size(400,400);
  noLoop();
}

void draw() {
  background(255);
  // offset the coordinate system so that (0,0) is the sketch center
  translate(width/2,height/2);
  // then draw a polygon. In this case, radius width/2, and 14 sided
  drawNgon(width/2, 14);
}

void drawNgon(float r, float n) {
  // to draw (r,0)-(x',y') we need x' and y':
  float phi = TAU/n;
  float nx = r * cos(phi);
  float ny = r * sin(phi);

  // and then we just draw that line as many times as there are sides
  for(int a=0; a<n; a++) {
    // draw line...
    line(r,0, nx,ny);
    // rotate the entire coordinate system...
    rotate(phi);
    // repeat until done.
  }
}

现在我们可以通过将输入更改为来自由更改多边形半径和边数drawNgon(..., ...)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Processing.Js制作四边形?

来自分类Dev

使用AffineTransform从四边形转换为四边形?

来自分类Dev

如何使用matplotlib在python中制作梯形和平行四边形

来自分类Dev

如何在JGraphx中制作平行四边形的顶点?

来自分类Dev

如何使四边形彼此齐平

来自分类Dev

使用WebGL渲染全屏四边形

来自分类Dev

如何用另一个四边形遮罩OpenGL四边形

来自分类Dev

如何在css中制作具有阴影效果的平行四边形结构

来自分类Dev

Three.js:使用 InstancedBufferGeometry + ShaderMaterial 为每个四边形自定义大小

来自分类Dev

使用每个四边形一个绘图调用或对所有四边形调用一个渲染四边形?

来自分类Dev

如何使用批量加载器加载四边形?

来自分类Dev

如何在2个四边形的相交部分使用不同的纹理

来自分类Dev

如何在2个四边形的相交部分使用不同的纹理

来自分类Dev

如何使用 CSS 创建平行四边形,但没有转换

来自分类Dev

如何在CSS中制作与平行四边形相似的形状?

来自分类Dev

如何在四边形的正面和背面放置不同的颜色

来自分类Dev

如何创建平行四边形形状背景?

来自分类Dev

如何在OpenGL中正确纹理四边形

来自分类Dev

如何在openGL中纹理随机凸四边形

来自分类Dev

如何在CSS中创建此形状(带有圆角的四边形)?

来自分类Dev

如何在matplotlib中用pcolor绘制四边形斑块?

来自分类Dev

如何在Metal中的四边形中正确渲染纹理?

来自分类Dev

如何将此HLSL像素着色器校正为四边形的圆角?

来自分类Dev

如何在opencv中检查白色四边形

来自分类Dev

如何仅通过形状的长度来判断形状是否为四边形?

来自分类Dev

如何在python中绘制带有字符的平行四边形?

来自分类Dev

在openGl 3.1或更高版本上,我应该使用什么绘制四边形?

来自分类Dev

使用几何着色器指向四边形扩展

来自分类Dev

使用opencv和Numpy从图像中检测平行四边形

Related 相关文章

  1. 1

    如何使用Processing.Js制作四边形?

  2. 2

    使用AffineTransform从四边形转换为四边形?

  3. 3

    如何使用matplotlib在python中制作梯形和平行四边形

  4. 4

    如何在JGraphx中制作平行四边形的顶点?

  5. 5

    如何使四边形彼此齐平

  6. 6

    使用WebGL渲染全屏四边形

  7. 7

    如何用另一个四边形遮罩OpenGL四边形

  8. 8

    如何在css中制作具有阴影效果的平行四边形结构

  9. 9

    Three.js:使用 InstancedBufferGeometry + ShaderMaterial 为每个四边形自定义大小

  10. 10

    使用每个四边形一个绘图调用或对所有四边形调用一个渲染四边形?

  11. 11

    如何使用批量加载器加载四边形?

  12. 12

    如何在2个四边形的相交部分使用不同的纹理

  13. 13

    如何在2个四边形的相交部分使用不同的纹理

  14. 14

    如何使用 CSS 创建平行四边形,但没有转换

  15. 15

    如何在CSS中制作与平行四边形相似的形状?

  16. 16

    如何在四边形的正面和背面放置不同的颜色

  17. 17

    如何创建平行四边形形状背景?

  18. 18

    如何在OpenGL中正确纹理四边形

  19. 19

    如何在openGL中纹理随机凸四边形

  20. 20

    如何在CSS中创建此形状(带有圆角的四边形)?

  21. 21

    如何在matplotlib中用pcolor绘制四边形斑块?

  22. 22

    如何在Metal中的四边形中正确渲染纹理?

  23. 23

    如何将此HLSL像素着色器校正为四边形的圆角?

  24. 24

    如何在opencv中检查白色四边形

  25. 25

    如何仅通过形状的长度来判断形状是否为四边形?

  26. 26

    如何在python中绘制带有字符的平行四边形?

  27. 27

    在openGl 3.1或更高版本上,我应该使用什么绘制四边形?

  28. 28

    使用几何着色器指向四边形扩展

  29. 29

    使用opencv和Numpy从图像中检测平行四边形

热门标签

归档