This is a MATLAB implementation of a drawing canvas which provides the tools needed to create professional-looking diagrams. The motivation of creating such a tool arose from the frustration of finding a suitable software that a) is simple to use (in the sense of containing no frills, just the absolute essential) and b) has the ability to have absolute control over the image output.
For this purpose, I have proposed a hybrid workflow in which creation-efforts can be shared by a combination of user-interaction with the canvas ( meaning, user creates the diagram interactively) and code-based editing work (users are able to manuipulate the underlying objects and modify their properties).
The implementation uses MATLAB's OOP and can be called from the command window by creating the Schematic2D object. Note if no input argument is passed to the constructor, the canvas will create a master folder on MATLAB's userpath to store the data. Moreover, three associated folders will also be created. These are used to store the auto-generated MATLAB function scripts, script-generated data and image output.
The main mode of interaction is with a series of keyboard presses, which serve to activate the various commands on the canvas. To see what these commands are, user can bring forth the 'key' pushbutton located at the top of the canvas. In addition of checking the various assigned keys, one can also remap those keys to meet their needs. However, care should be exercised to avoid duplicating keys for the same command.
In addition to the basic figure creation tools, the class also offers an image-digitising module, which include automated line tracing (note the algorithm used differs from that of 'DataThief', we used a combination of Gaussian weigthed function and linear regression to update the search direction. The end result is a simple and efficient routine that performs comparably in most situation).
Ling Fang Cao (2022). Schematic2D (https://github.com/LingFCao/Schematic2D), GitHub. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!