processing / processing-website

Repository for the processing.org website
https://processing.org
GNU General Public License v2.0
68 stars 96 forks source link

Confusing example for PVector copy() method #577

Open stuydw opened 1 day ago

stuydw commented 1 day ago

Select the type of content error.

Other content error (please specify)

Section

Examples

Location of the error

https://processing.org/reference/PVector_copy_.html

Describe the error

In the documentation for the copy() method of the PVector class, the following code example is given:

PVector v1, v2;

void setup() {
  size(100, 100);
  v1 = new PVector(20.0, 30.0, 40.0);
  v2 = new PVector();
  v2 = v1.copy();
  ...

While not a factual error, it seems curious to me that v2 would be instantiated as a new PVector only to be assigned the result of v1.copy(). If .copy() creates a returns a new PVector object, then the initial assignment would have no effect. This led to some confusion amongst my students who had various incorrect assumptions about how .copy() works given the example code.

Suggested correction

PVector v1, v2;

void setup() {
  size(100, 100);
  v1 = new PVector(20.0, 30.0, 40.0);
  v2 = v1.copy();
  ...

Language

No response

Screenshots or references

No response

Additional context

No response