The following applies to all text input boxes
Since v2.1.0, all former standalone feature tabs have been integrated into the All-in-One page, making the interface much simpler. The current menu bar and tab structure:
| Menu | Items | Description |
|---|---|---|
| File | Save As / Open / Cache / Settings / Exit | project save/load, cache management and interface settings |
| Features | Home / All-in-One / Editor | open the home page, the All-in-One page, and the Blockly editor |
| About | GitHub Link / Web Version / Guide / Help | project links and built-in help |
There are 6 kinds of tabs: Home, All-in-One, Help, Settings, Cache, and Blockly Editor. Multiple tabs of the same kind can be open at once (titles are auto-numbered); tabs can be closed and reordered by dragging.
The All-in-One page is the main interface for all kinds of computation, divided left-to-right into three areas whose widths can be adjusted by dragging the splitters:
Besides the standard Python/SymPy syntax below, you can enter LaTeX code directly. Prefix the LaTeX code with a half-width dollar sign $; the system converts the LaTeX expression into a SymPy expression automatically.
Usage:
| # | Meaning | LaTeX input | Equivalent SymPy input |
|---|---|---|---|
| 1 | x over 2 | $\frac{x}{2} | x/2 |
| 2 | x squared | $x^{2} | x**2 |
| 3 | square root of x | $\sqrt{x} | sqrt(x) |
| 4 | sin(x) | $\sin{x} | sin(x) |
| 5 | natural log ln(x) | $\ln{x} | log(x) |
| 6 | pi π | $\pi | pi |
| 7 | infinity ∞ | $\infty | oo |
$. Without it, the expression is parsed with the standard SymPy/Python rules. LaTeX parsing supports common math symbols and structures; complex expressions may mix LaTeX and SymPy syntax.
+ - * /** (e.g. x**2 means x squared)sqrt()abs()log(x, a)log(x)sin() cos() tan() cot() sec() csc()asin() acos() atan() acot() etc.sinh() cosh() tanh() etc.epioo / -oo() work everywhereIExamples:
| # | Meaning | Expression to enter |
|---|---|---|
| 1 | 2x | 2*x |
| 2 | x squared | x**2 |
| 3 | square root of x | sqrt(x) |
| 4 | logarithm base 2 of x | log(x,2) |
| 5 | natural log ln(x) | log(x) |
| 6 | sine of x | sin(x) |
FiniteSet(1,2,3)ImageSet(Lambda(x, f(x)), Domain)RealsComplexesNaturalsNaturals0IntegersRationalsEmptySetInterval(x,y)Interval.Lopen(x,y)Interval.Ropen(x,y)Interval.open(x,y)Union(A,B)Intersection(A,B)Complement(A,B), where A is the universal setExamples:
| # | Meaning | Expression to enter |
|---|---|---|
| 1 | set {1,2} | FiniteSet(1,2) |
| 2 | interval [1,2] | Interval(1,2) |
| 3 | interval [1,2) | Interval.Ropen(1,2) |
| 4 | interval (1,2) | Interval.open(1,2) |
| 5 | union {0}∪[1,2] | Union(FiniteSet(0),Interval(1,2)) |
| 6 | intersection {1,2}∩{2,3} | Intersection(FiniteSet(1,2),FiniteSet(2,3)) |
| 7 | complement R \ [-1,1] | Complement(Reals,Interval(-1,1)) |
FiniteSet(1,2,3) in the function domain input to restrict the domain to the discrete set {1,2,3}FiniteSet(0,1) in the principal variable range input to solve only for roots within that setUnion(Interval(0,1), FiniteSet(2)) represents the union of interval [0,1] and point 2ImageSet(Lambda(x, x**2), Interval(0, 5)) represents {x² | x∈[0,5]}ImageSet(Lambda(n, n*pi), Integers), where n is an integerImageSet(Lambda(x, 2*x+1), Integers) represents the set of all odd integersFor a function already defined in the Define area of the All-in-One page, you can use it directly in most other input boxes:
g+1/g yields x**2 + 1/x**2f(3) computes 3**2 = 9 automatically; nested calls such as f(g(2)) are supportedIn modules such as derivative, integral, equation solving, and expression simplification, if the denominator of a result contains a radical, the system automatically rationalizes the denominator, simplifying the result into its simplest form where both numerator and denominator are integral or radical expressions.
In the Compute area of the All-in-One page with the "Compute" type, four computation engines are supported:
In the Define area of the All-in-One page with the "Vector" type, you can define 2D vectors and perform vector operations.
v, customizablesqrt(3), pi/2)In the Compute area of the All-in-One page with the "Solve Triangle" type, enter the known conditions of a triangle to solve for the remaining unknowns.
pi/3, sqrt(2))| Case | Known conditions | Note |
|---|---|---|
| ASA | two angles and the included side | unique solution |
| AAS | two angles and a non-included side | unique solution |
| SAS | two sides and the included angle | unique solution |
| SSA | two sides and an angle opposite one of them | may have two, one, or no solution |
| SSS | three sides | unique solution |
In the Plot area of the All-in-One page with "Function mode" selected, you can plot function graphs.
x**2, sin(x))1/x breaks at x=0)sin(x), set the domain to [0, 2*pi], and click Plot to see a complete sine wave.
In the Define area of the All-in-One page with the "Plane Geometry" type, define points, lines, segments, circles, triangles, and polygons, then visualize them in the Plot area with "Plane Geometry mode".
| Category | Method | Parameters |
|---|---|---|
| Basic | point by coordinates | x, y |
| Basic | line through two points | point1, point2 |
| Basic | circle by center and radius | center, radius |
| Basic | circle through three points (circumcircle) | point1, point2, point3 |
| Basic | triangle through three points | point1, point2, point3 |
| Basic | polygon by vertex list | point1, point2, ... |
| Circle | circle with diameter endpoints | point1, point2 |
| Circle | circle by center and a point on it | center, pointOnCircle |
| Line | perpendicular bisector of a segment | segmentName |
| Line | parallel through a point | pointName, segmentName |
| Line | perpendicular through a point | pointName, segmentName |
| Line | angle bisector of two lines | line1, line2 |
| Line | angle bisector (three points) | point1, point2(vertex), point3 |
| Triangle | median of a triangle | triangleName, vertexIndex(0/1/2) |
| Triangle | altitude of a triangle | triangleName, vertexIndex(0/1/2) |
| Triangle | midline of a triangle | triangleName |
| Triangle | incircle of a triangle | triangleName |
| Triangle | excircle of a triangle | triangleName, vertexIndex(0/1/2) |
| Segment | segment through two points | point1, point2 |
In the Plot area with "Plane Geometry mode", all defined objects are checked by default. Uncheck the ones you don't need, then click Plot or Update to generate the Matplotlib image.
In the Define area of the All-in-One page with the "Solid Geometry" type, define 3D points, lines, planes, and segments, then visualize them in the Plot area with "Solid Geometry mode".
| Method | Parameters |
|---|---|
| point by coordinates | x, y, z |
| line through two points | point1, point2 |
| parallel plane through a point | planeName, pointName |
| perpendicular plane to a line through a point | lineName, pointName |
| parallel line to a line through a point | lineName, pointName |
| perpendicular to a line through a point | pointName, lineName |
| perpendicular to a plane through a point | planeName, pointName |
| plane through a line and an external point | lineName, pointName |
| plane through two intersecting/parallel lines | line1Name, line2Name |
| foot of perpendicular from point to plane | pointName, planeName |
| foot of perpendicular from point to line | pointName, lineName |
| 3D segment through two points | point1, point2 |
In the Plot area with "Solid Geometry mode", filter objects via checkboxes, then click Plot or Update to generate a 3D rotatable Matplotlib image (with transparent planes and colored lines).
In the Compute area of the All-in-One page with the "Plane Compute" type, use defined points, lines, circles, triangles, polygons, etc. for geometric computation. Parameters are separated by half-width English commas, and defined objects are referenced by name.
| Category | Operation | Parameter example |
|---|---|---|
| Point | distance between two points | A, B |
| Point | midpoint coordinates | A, B |
| Point | collinearity check | A, B, C |
| Point | translate point | A, 1, 2 |
| Point | rotate point about a fixed point | A, pi/2, O |
| Point | reflect point across a line | A, L1 |
| Line | line equation | A, B |
| Line | line slope | A, B |
| Line | intersection of two lines | L1, L2 |
| Line | distance from point to line | A, L1 |
| Line | angle between two lines | L1, L2 |
| Line | parallel / perpendicular check | L1, L2 |
| Circle | center / radius / area / perimeter | C1 |
| Circle | intersection of two circles | C1, C2 |
| Circle | tangent line equation | A, C1 |
| Triangle | area / perimeter / circumcenter / incenter / centroid / orthocenter | T1 |
| Triangle | circumradius / inradius | T1 |
| Triangle | right/isosceles/equilateral check | T1 |
| Polygon | area / perimeter | A, B, C, D |
| Transform | translate / rotate / reflect | see Point operations |
| Vector | vector between points / magnitude / dot product / angle | A, B |
A,B,C; the result is 6.
In the Compute area of the All-in-One page with the "Solid Compute" type, use defined 3D points, lines, planes, etc. for spatial geometric computation.
| Category | Operation | Parameter example |
|---|---|---|
| Point | distance / midpoint between two points | A, B |
| Point | distance from point to plane | A, P1 |
| Point | distance from point to line | A, L1 |
| Point | project point onto plane / line | A, P1 or A, L1 |
| Point | coplanarity check | A, B, C, D |
| Line | direction vector / intersection / angle | L1, L2 |
| Line | parallel / perpendicular check | L1, L2 |
| Line | projection of line onto plane | L1, P1 |
| Plane | plane equation from three points | A, B, C |
| Plane | plane normal vector | P1 |
| Plane | angle / intersection line / parallel-perpendicular of two planes | P1, P2 |
| Line-Plane | intersection of plane and line | P1, L1 |
| Line-Plane | angle between line and plane | L1, P1 |
| Volume | tetrahedron volume | A, B, C, D |
| Vector(3D) | vector / magnitude / dot / cross / angle between points | A, B |
| Oblique projection | projection / inverse / area ratio | A or 1,2,0 |
A,B,C,D; the result is 1/6.
Differential equation input does not follow the function input standard above, because the solution is unknown before solving. The system excludes all defined functions when parsing the expression to avoid interference, and the function to solve for is fixed as f(x).
In the input, use f(x).diff(x,n) to denote the n-th derivative with respect to x. The 1 can be omitted, so f(x).diff(x) denotes the first derivative.
Example: in the Compute area select "Equation" and check "Differential Equation", enter f(x).diff(x,1) on the left and f(x)+1 on the right, completing the input of f'(x)=f(x)+1; click Solve to get f(x)=C1*exp(x)-1.
Open the settings page via the menu bar "File → Settings" to configure the following:
help_en.html in this page's English version).Both settings are saved as JSON under the Qt standard configuration directory (typical path AppData/Local/CalculusCalculator/CalculusCalculator/settings.json), with content such as {"language": "zh_CN", "theme": "dark"}.
Via the menu bar "File → Save / Open" you can save the current workspace (including theme and language) as a project file, which restores the saved theme and language when opened.
Temporarily store and manage commonly used expressions via the "Cache" feature, in two ways:
Each text input box has three icon quick buttons on its right:
| Icon | Function | Description |
|---|---|---|
| keyboard | Visual input | open the formula editor dialog to insert math symbols and structures graphically |
| open | Open cache | pop up the cache dialog; double-click a cached item to fill the current input box |
| plus | Store to cache | store the current input box text into the cache (duplicates move to front; icon briefly becomes a checkmark) |
A visual math formula input panel based on MathLive (bundled in the math_input/ directory). Since v2.0.0, the formula editor's underlying engine has been replaced with MathLive, offering a smoother input experience and more accurate symbol rendering.
On the "Save Settings (when saving)" area of the settings page, you can fine-tune which types of information are saved via checkboxes:
| Option | Description |
|---|---|
| Function list | custom function definitions (fs dict) |
| Equation list (systems) | list of all entered equation expressions |
| Inequality list (systems) | list of all entered inequality expressions |
| Vector list | all defined vectors |
| All cache contents | all expressions cached in the cache area |
| Plane geometry object list | points, lines, circles, triangles, etc. defined in plane geometry |
| Solid geometry object list | points, lines, planes, etc. defined in solid geometry |
| All text box texts | text content in all input boxes |
| All selection box options | current selection of all dropdown boxes |
| All expression display contents | contents of all formula rendering views |
| All settings options | tab index, language, theme, and other framework settings |
Open the Blockly editor via "Features → Editor" and build a visual computation flow by dragging and snapping blocks together, completing complex computations without writing code. Currently supported:
$ for LaTeX input (see "1. Direct LaTeX Code Input").A splash screen shows progress and hints while the program loads resources, avoiding a blank wait during startup. v2.1.0 further optimizes the startup flow:
lazy_loader) mechanism, the overall startup speed is optimized.The above content fully references the language specifications of Python 3.12 and SymPy 1.14.
If you have questions, please refer to:
| Version | Release date | Core updates |
|---|---|---|
| v2.1.0 | 2026-10-10 | Removed 18 standalone feature tabs (Define Function, Define Vector, Define Plane Geometry, Define Solid Geometry, Algebraic Compute, Transform, Plane Compute, Solid Compute, Solve Triangle, Equation, Inequality, System of Equations, System of Inequalities, Plot Function, Plane Plot, Solid Plot, Derivative, Integral) — all features integrated into the "All-in-One" page (Define / Compute / Plot areas); "Blockly mode" menu moved into the "Features" menu; startup optimizations: QWebEngine kernel lazily initialized on first use, lightweight splash screen, redundant formula view refreshes skipped at startup, staged startup profiling added |
| v2.0.0 | 2026-08-14 | New Blockly feature (visual computation flow); formula editor backend upgraded to MathLive; new splash screen and optimized startup; English help documentation added; Blockly added dual-mode code preview (native SymPy code / library code); fixed LaTeX output rendering misdetection; fixed subscript access error when sympify receives a SymPy object |
Thank you for using it!
LiMingkang
2026/10/10