main/src/georegression/geometry/UtilPoint4D_F64.java
public static List<Point4D_F64> randomN( Point3D_F64 center , double w, double stdev, int num, Random rand ) {
		List<Point4D_F64> ret = new ArrayList<>();

		for( int i = 0; i < num; i++ ) {
			Point4D_F64 p = new Point4D_F64();
			p.x = center.x + rand.nextGaussian() * stdev;
			p.y = center.y + rand.nextGaussian() * stdev;
			p.z = center.z + rand.nextGaussian() * stdev;
			p.w = w;

			ret.add( p );
		}

		return ret;
	}
public static List<Point4D_F64> randomN( Point3D_F64 center , double w, double stdev, int num, Random rand ) {
		List<Point4D_F64> ret = new ArrayList<>();

		for( int i = 0; i < num; i++ ) {
			Point4D_F64 p = new Point4D_F64();
			p.x = center.x + rand.nextGaussian() * stdev;
			p.y = center.y + rand.nextGaussian() * stdev;
			p.z = center.z + rand.nextGaussian() * stdev;
			p.w = w;

			ret.add( p );
		}

		return ret;
	}
public static List < Point4D_F64 > randomN ( Point3D_F64 center , double w , double stdev , int num , Random rand ) { List < Point4D_F64 > ret = new ArrayList <> ( ) ; for ( int i = 0 ; i < num ; i ++ ) { Point4D_F64 p = new Point4D_F64 ( ) ; p . x = center . x + rand . nextGaussian ( ) * stdev ; p . y = center . y + rand . nextGaussian ( ) * stdev ; p . z = center . z + rand . nextGaussian ( ) * stdev ; p . w = w ; ret . add ( p ) ; } return ret ; }
Normally distributed homogenous 3D point. w is fixed
Normally distributed homogenous 3D point . w is fixed