> For the complete documentation index, see [llms.txt](https://jona-projects.gitbook.io/kiwicalc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jona-projects.gitbook.io/kiwicalc/analytic-geometry/surface.md).

# Surface

The Surface class represents planes in the three-dimensional space $$\mathbb{R}^3$$, that are expressed via the following equation:

$$
ax+by+cz+d=0
$$

Properties

* `a` - the \`a\` coefficient in the equation.
* `b` - the \`b\` coefficient in the equation.
* `c` - the \`c\` coefficient in the equation.
* `d` - the \`d\` coefficient in the equation.

#### Creating a new `Surface` object

You can create a new `Surface` object by entering a string that represents the equation or with a collection of the coefficients \`a\`, \`b\`, \`c\`, and \`d\`. You can plot it too later. For instance:

```python
my_surface = Surface("7x + 3y + z + 9 = 0")
my_surface.plot()                 
```

```python
my_surface = Surface([7, 3, 1, 9])
my_surface.plot()          
```

Output:

<figure><img src="https://2785172799-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSVfnBivCGXuD9hczW0nZ%2Fuploads%2FJ9YkYyE2oNvT1FgJ40Z0%2Fsurfaceplot.png?alt=media&amp;token=26e1959e-d69b-4359-8149-c8533b93ab91" alt=""><figcaption><p>Plotting a 3D plane in kiwicalc, via matplotlib.</p></figcaption></figure>

#### Checking `Surface` Equality

You can check whether `Surface` objects with the `==` operator. For example:

```python
first_surface = Surface("7x + 3y + z + 9 = 0")
second_surface = Surface([7, 1, 3, 9])
print(first_surface == second_surface)                
```
