Repository: ManimCommunity/manim
File: manim/mobject/types/point_cloud_mobject.py (Python)

Code before:
class Mobject2D(PMobject):
    def __init__(self, density=DEFAULT_POINT_DENSITY_2D, **kwargs):
        self.density = density
        self.epsilon = 1.0 / self.density
        PMobject.__init__(self, **kwargs)


class PGroup(PMobject):
    def __init__(self, *pmobs, **kwargs):
        if not all([isinstance(m, PMobject) for m in pmobs]):
            raise ValueError("All submobjects must be of type PMobject")
        super().__init__(**kwargs)
        self.add(*pmobs)


class PointCloudDot(Mobject1D):
    """A disc made of a cloud of Dots
    Example
    --------
    .. manim:: PointCloudDotExample
        :save_last_frame:

        class PointCloudDotExample(Scene):
            def construct(self):
                dots = PointCloudDot(color=RED)
                self.add(dots)
    """

    def __init__(
        self,
        center=ORIGIN,
        radius=2.0,
        stroke_width=2,
        density=DEFAULT_POINT_DENSITY_1D,
        color=YELLOW,
        **kwargs
    ):
        self.radius = radius
        Mobject1D.__init__(
            self,
            radius=radius,
            stroke_width=stroke_width,
            density=density,
            color=color,
            **kwargs
        )
        self.shift(center)

    def generate_points(self):
        self.add_points(
            [

Review comment (suggestion):
I think a better example would be one that shows off more of the parameters
```suggestion
        class PointCloudDotExample(Scene):
            def construct(self):
                cloud_1 = PointCloudDot(color=RED)
                cloud_2 = PointCloudDot(stroke_width=4, radius=1)
                cloud_3 = PointCloudDot(density=15)
        
                group = Group(cloud_1, cloud_2, cloud_3).arrange()
                self.add(group)
```

Code after:
class Mobject2D(PMobject):
    def __init__(self, density=DEFAULT_POINT_DENSITY_2D, **kwargs):
        self.density = density
        self.epsilon = 1.0 / self.density
        PMobject.__init__(self, **kwargs)


class PGroup(PMobject):
    def __init__(self, *pmobs, **kwargs):
        if not all([isinstance(m, PMobject) for m in pmobs]):
            raise ValueError("All submobjects must be of type PMobject")
        super().__init__(**kwargs)
        self.add(*pmobs)


class PointCloudDot(Mobject1D):
    """A disc made of a cloud of Dots
    Example
    --------
    .. manim:: PointCloudDotExample
        :save_last_frame:

        class PointCloudDotExample(Scene):
            def construct(self):
                cloud_1 = PointCloudDot(color=RED)
                cloud_2 = PointCloudDot(stroke_width=4, radius=1)
                cloud_3 = PointCloudDot(density=15)

                group = Group(cloud_1, cloud_2, cloud_3).arrange()
                self.add(group)

    .. manim:: PointCloudDotExample2

        class PointCloudDotExample2(Scene):
            def construct(self):
                plane = ComplexPlane()
                cloud = PointCloudDot(color=RED)
                self.add(
                    plane, cloud
                )
                self.wait()
                self.play(
                    cloud.animate.apply_complex_function(lambda z: np.exp(z))
                )
    """

    def __init__(
        self,
        center=ORIGIN,
        radius=2.0,
        stroke_width=2,