首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按角度画线.处理

按角度画线.处理
EN

Stack Overflow用户
提问于 2014-02-05 04:26:02
回答 2查看 2.3K关注 0票数 0

如何使用处理在30度处绘制彼此的线?我读过二维变换页面,但我不想旋转网格,我只想在30度之间画线。我怎样做呢?

下面我包含了一个示例图像,很抱歉用油漆画得很糟糕(不想使用处理),我该怎么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-05 14:26:19

也许用简单的三角法?

代码语言:javascript
复制
void setup() {
  size(400, 400);
  PVector center = new PVector(width/2, height/2);
  for (int i = 360; i >= 180; i-=30) {
    float x = center.x + cos(radians(i))*50;
    float y = center.y + sin(radians(i))*50;
    line(center.x, center.y, x, y);
  }
}
票数 1
EN

Stack Overflow用户

发布于 2014-02-05 08:32:44

下面的程序生成随机单元向量输入,并返回顺时针方向旋转的输出向量outputShift半径。如果你想逆时针旋转,只需使用负值。

代码语言:javascript
复制
PVector input, output;
float inputAngle, outputShift, radius;

void setup () {
  size(500, 500);
  load();
}

void draw () {
  background(255);

  translate(width/2, height/2);

  ellipse (0, 0, radius*2, radius*2);

  line(0, 0, input.x, input.y);
  line(0, 0, output.x, output.y);
}

void load () {
  input = PVector.random2D();

  inputAngle = atan2(input.y, input.x);
  outputShift = PI/6; 

  output = new PVector (
  cos(inputAngle+outputShift), 
  sin(inputAngle+outputShift)
    );

  radius = 200;

  input.setMag(radius);
  output.setMag(radius);
}

void keyReleased () {
  load();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21568643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档