In GIS you can do something called buffering. Any vector feature can be buffered and in most cases the quality/resolution of the buffer can be controlled - in most cases this a parameter to control the number of segments. The approach I would take would be:
- Create the point layer for your tree survey data
- Add two fields to store the canopy and root protection distances
- Capture the data
- In QGIS create a buffer of all points using the value stored in the canopy field
- Save the buffer objects out to a new layer called canopy
- Repeat the process for the root protection
** You will need to store the radius value and not the diameter otherwise the buffers will be double the actual size
You will then end up with three layers. A point layer with locations of your trees, a polygon layer showing the canopies for each of your trees, and another polygon layer for the root protection areas. Now you will be able to visualise the three components on the map and also do further analysis. For example, calculate the amount of canopy overlap of different species of tree.
An important thing to remember will be to make sure you assign a unique ID to each tree so hat when you generate the buffers and store them to a separate layer you have a means for linking them again.