Client device, server device, and graph drawing program

By offloading calculations to a server and integrating graphs on the client, the system improves user operability and security in web-based graph drawing applications.

JP2026034749APending Publication Date: 2026-02-27CASIO COMPUTER CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025277329
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-12-23
Publication Date
2026-02-27

AI Technical Summary

Technical Problem

Web applications that perform mathematical calculations on client devices and draw graphs expose the calculation algorithms, compromising security and operability.

Method used

A system where client devices input data to a server for calculations, allowing the client to draw graphs without revealing the calculation algorithms, and enabling easy integration and overlay of multiple graphs on a single display.

Benefits of technology

Enhances user operability and security by hiding calculation algorithms on the client, minimizing server calculations, and simplifying graph integration on the client device.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026034749000001_ABST
    Figure 2026034749000001_ABST
Patent Text Reader

Abstract

To improve the operability of graph plotting.SOLUTION: The server 20 calculates the coordinates of the first plot points based on the input of the first formula to the first formula tag 31a of the communication device 10 and the coordinate range of the first graph tag 32a, and calculates the coordinates of the second plot points based on the input of the second formula to the second formula tag 31b and the coordinate range of the second graph tag 32b. The communication device 10 draws the graph based on the coordinates of the first plot points in the first graph tag 32a and draws the graph based on the coordinates of the second plot points in the second graph tag 32b. The coordinates of the first and second plot points are stored in the storage unit 13 of the communication device 10 in association with the first and second formulas, respectively. The two graphs are drawn on one graph tag by the drag-and-drop operation of the two graph tags 32a and 32b.SELECTED DRAWING: Figure 14
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a client device, a server device, and a graph drawing program. [Background technology]

[0002] Graph drawing applications that can be used on web browsers are known. For example, according to Non-Patent Document 1, an application that runs on a web browser performs calculations based on mathematical expressions entered by a user in an expression list, and then draws a graph based on the results of the calculations. [Prior art documents] [Non-patent literature]

[0003] [Non-Patent Document 1] Desmos, Desmos User Guide, Translated by Yoshito Horikawa [online], [Retrieved September 27, 2017], Internet<URL:https: / / desmos.s3.amazonaws.com / Desmos_User_Guide_JA.pdf> Summary of the Invention [Problem to be solved by the invention]

[0004] In a web application that accepts mathematical formula input, performs calculations, and draws graphs on a web browser on a client device, the calculation algorithm is made public. In contrast, in a web application in which mathematical formula data entered on a client device is sent to a server device, where calculations are performed, and the client device only presents the calculation results, it is possible to conceal the calculation algorithm from the client device.

[0005] In such web applications, it is desirable to improve the operability of graph drawing.

[0006] SUMMARY OF THE INVENTION It is therefore an object of the present invention to provide a client device, a server device, and a graph drawing program that are easy to use for graph drawing. [Means for solving the problem]

[0007] A client device according to one embodiment of the present invention includes a control unit that displays, on a display screen of a display unit, first coordinates in which a first coordinate range corresponding to an input first mathematical formula is set and second coordinates in which a second coordinate range corresponding to an input second mathematical formula is set, accepts a user operation to overlay at least a portion of a first area in which the first coordinates are displayed on the display screen of the display unit over a second area in which the second coordinates are displayed, and, in response to accepting the user operation, displays, on the display screen of the display unit, integrated coordinates determined and set based on the first coordinate range and the second coordinate range, and draws a first graph representing the first mathematical formula and a second graph representing the second mathematical formula on the integrated coordinates displayed on the display screen of the display unit. [Effects of the Invention]

[0008] According to the present invention, it is possible to provide a client device, a server device, and a graph drawing program that are easy to use for graph drawing. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 is a diagram illustrating an example of the overall configuration of the system. [Figure 2] FIG. 2 is a diagram showing an example of a display screen. [Figure 3A] FIG. 3A is a diagram showing an example of a drawing process of two graph sticky notes. [Figure 3B] FIG. 3B is a diagram showing an example of a drawing process when the graph area of ​​the graph sticky note is changed. [Figure 3C] FIG. 3C is a diagram illustrating an example of the process of merging two graph sticky notes. [Figure 4]FIG. 4 is a diagram showing an example of a display screen of a communication device. [Figure 5] FIG. 5 is a diagram showing an example of a display screen of a communication device. [Figure 6] FIG. 6 is a diagram showing an example of a display screen of a communication device. [Figure 7] FIG. 7 is a diagram showing an example of a display screen of a communication device. [Figure 8] FIG. 8 is a diagram showing an example of a display screen of a communication device. [Figure 9] FIG. 9 is a diagram showing an example of a display screen of a communication device. [Figure 10] FIG. 10 is a diagram showing an example of a display screen of a communication device. [Figure 11] FIG. 11 is a diagram showing an example of a display screen of a communication device. [Figure 12] FIG. 12 is a diagram showing an example of a display screen of a communication device. [Figure 13] FIG. 13 is a diagram showing an example of a display screen of a communication device. [Figure 14] FIG. 14 is a diagram showing an example of a flowchart of the operation of merging two sticky notes. DETAILED DESCRIPTION OF THE INVENTION

[0010] An embodiment of the present invention will be described with reference to the drawings. 1 is a diagram showing an example of the overall configuration of a system including a client device and a server device according to an embodiment of the present invention. The system 1 includes a communication device 10 and a server 20. The communication device 10 is communicably connected to the server 20 via a communication network N such as the Internet. The communication device 10 may be a tablet terminal, a smartphone, a personal computer (PC), or the like.

[0011] In the system 1, data for graph drawing / number table creation input to the communication device 10 is transmitted from the communication device 10 to the server 20. The server 20 performs calculations for graph drawing / number table creation based on the data, and transmits the results of the calculations to the communication device 10. The communication device 10 performs graph drawing / number table creation based on the results of the calculations.

[0012] The communication device 10 includes a processor 11, a main memory 12, a storage 13, an input unit 14, a communication unit 15, and a display output unit 16. These are all connected to each other via a system bus 17.

[0013] The processor 11 may be an integrated circuit such as a CPU (Central Processing Unit). The processor 11 reads various programs, such as a communication device control program and a program that runs on a web browser, that are pre-stored in the storage 13, expands and stores them in the main memory 12, and then controls the operation of each unit by executing the various programs in response to input signals from the input unit 14 and signals received by the communication unit 15. The various programs may be downloaded to the storage 13 via the communication unit 15 from a web server (not shown) on the communication network N.

[0014] The input unit 14 includes external input devices such as a keyboard and a mouse, or a key input unit displayed on the display output unit 16 of the communication device 10. By operating the input unit 14, an input signal is input from an input interface (I / F) to the processor 11 via the system bus 17.

[0015] The display output unit 16 includes an external display device such as a liquid crystal display, or a display unit such as a liquid crystal display of the communication device 10. An output signal is transmitted to the display output unit 16 from the processor 11 via the system bus 17 and an output interface (I / F).

[0016] The server 20 has a processor 21, a main memory 22, a large-capacity storage 23, and a communication unit 24. These are connected to each other via a system bus 25. The server 20 may also be connected to input devices and output devices (not shown) via its input I / F and output I / F.

[0017] The processor 21 may be an integrated circuit such as a CPU. The processor 21 reads various programs, such as a server control program, that are pre-recorded in the mass storage 23 or downloaded, expands and stores them in the main memory 22, extracts and decodes the instructions of the programs, and controls the operation of each component according to the contents of the instructions. The processor 21 also performs arithmetic processing based on input data from the communication device 10 in accordance with a calculation processing program for drawing graphs / creating mathematical tables.

[0018] In this embodiment, a user specifies the address of server 20 in a web browser running on communication device 10, which then sends a request to server 20. Based on the response received from server 20, the web browser of communication device 10 creates a web application screen for graph drawing / mathematical formula creation. Furthermore, the web browser of communication device 10 issues a request to server 20 in response to input data such as mathematical formulas, and receives the results of calculations performed by server 20 in accordance with a calculation processing program as a response from server 20. In other words, in response to a calculation request from communication device 10, server 20 transmits the results of calculations performed by processor 21 in accordance with the calculation program to communication device 10 as a response. Furthermore, communication device 10 uses the received calculation results to draw graphs / create mathematical tables using processor 11 in accordance with a program running on the web browser. In this way, the program running on the web browser of communication device 10 and the calculation processing program of server 20 implement the functionality of a web application for graph drawing / mathematical formula creation.

[0019] In this embodiment, the client device, i.e., communication device 10, only accepts input of data such as mathematical formulas and performs processes for drawing graphs and creating number tables, but does not perform calculations for drawing graphs and creating number tables. The calculations are performed by a server device, i.e., server 20, connected to the client device via a communication network N. This allows the server device to provide calculation results to the client device, allowing the client device to draw graphs and create number tables, without disclosing accurate calculation algorithms.

[0020] 2 is a diagram showing an example of a display screen 30 of a graph drawing application that runs on a web browser. As described above, this graph drawing application is a scientific calculator web application provided by a program that runs on the web browser of a client device and a calculation processing program of a server device.

[0021] The display screen 30 shown in Fig. 2 is, for example, a screen display of the display output unit 16 of the communication device 10. Various floating objects are displayed on the display screen 30. Hereinafter, each of the objects will be referred to as a sticky note. Fig. 2 shows four types of sticky notes: an equation sticky note 31, a graph sticky note 32, a number table sticky note 33, and a memo sticky note 34.

[0022] The formula sticky note 31 is a sticky note (formula specification section) for inputting a formula, and the formula entered by the user is displayed here. The formula sticky note 31 is displayed, for example, by selecting (e.g., clicking or tapping; the same applies to the term "selection" hereinafter) the formula input button 41 on the toolbar 40 on the initial display screen 30 shown in FIG. 4. The toolbar 40 may be displayed, for example, by the user selecting any location on the screen and selecting "Show / Hide Toolbar" from the menu that appears.

[0023] The graph sticky note 32 is a sticky note (graph specification part) for displaying a graph, and a graph based on the calculation results (coordinates of plot points) calculated by the server 20 based on the confirmation of the above mathematical formula input is drawn and displayed here. The graph sticky note 32 is created by selecting the graph display button 42 on the toolbar 40 shown in Fig. 4 after the input of the formula sticky note 31 is confirmed. The graph sticky note 32 is displayed with a tab 37 attached.

[0024] The number table sticky note 33 is a sticky note for displaying a number table, and a number table based on the calculation results (number table values) calculated by the server 20 based on the confirmation of the above-mentioned mathematical formula input is created and displayed here. The number table sticky note 33 is created by selecting the number table display button 43 on the toolbar 40 shown in Figure 4 after the input of the formula sticky note 31 is confirmed.

[0025] With the graph sticky note 32 or number table sticky note 33, the user can arbitrarily set a predetermined graph area or number table area, i.e., the coordinate range to be drawn or the range of values ​​to be created. These settings are made, for example, by the user selecting any location on the screen, selecting "graph range" or "number table range" from the displayed menu, and then inputting the desired range. As will be described later, the graph area can be changed by the user by moving the graph sticky note 32 after it has been created.

[0026] The memo sticky note 34 is a sticky note for entering text, and displays various information entered by the user. The memo sticky note 34 is displayed, for example, by selecting the memo input button 44 on the toolbar 40 shown in FIG.

[0027] 2, the equation sticky note 31 and the graph sticky note 32 are connected by a line 35. This line 35 indicates that the equation sticky note 31 and the graph sticky note 32 are linked together, that is, that a graph has been drawn on the graph sticky note 32 based on the mathematical formula data entered into the equation sticky note 31. Similarly, the equation sticky note 31 and the number table sticky note 33 are connected by a line 36. This line 36 also indicates that the equation sticky note 31 and the number table sticky note 33 are linked together.

[0028] In this embodiment, two or more formula sticky notes 31 can be created, and two or more graph sticky notes 32 linked to each of these can be created. That is, multiple formula sticky notes 31 and multiple graph sticky notes 32 can be displayed on the same display screen 30. One formula sticky note and its linked graph sticky note, and another formula sticky note and its linked graph sticky note are independent of each other, but in this embodiment, two independent graph sticky notes can be integrated into one graph sticky note, and the two graphs that were drawn on the two graph sticky notes before the integration can be drawn and displayed on the one graph sticky note. That is, two graphs drawn on physically different graph sticky notes can be superimposed.

[0029] 3A to 3C are diagrams showing an example of a process from drawing two graph sticky notes to merging them by the communication device 10 and the server 20. Below, a series of steps for merging and displaying two graph sticky notes will be specifically explained with reference to FIGS. 4 to 13 as well as FIGS. 3A to 3C.

[0030] FIG. 3A shows an example of a process of drawing a first graph on a first graph sticky note (first area) 32a and a second graph on a second graph sticky note (second area) 32b.

[0031] 4, the user moves cursor 45 onto and selects mathematical formula input button 41 on toolbar 40 on display screen 30. This causes communication device 10 to accept a first formula tag input instruction (step S101).

[0032] After step S101, the display screen 30 of the communication device 10 displays a key input section 46 together with a first formula tag 31a, as shown in Fig. 5. The key input section 46 includes various keys such as numeric keys [0] to [9], arithmetic sign keys [+], [-], [x], and [÷], an execution key [EXE], and arrow cursor keys. The user uses the key input section 46 to input, for example, a first mathematical formula y=x on the first formula tag 31a.2 The user inputs +3 and confirms it by selecting the execute key. The communication device 10 accepts the formula input to the first formula tag 31a and executes a process of confirming the formula input to the first formula tag 31a as the first formula (step S102). After this confirmation process, for example, by selecting the graph display button 42 on the toolbar 40, or by this confirmation process, the communication device 10 accepts a request to draw a graph.

[0033] The communication device 10 transmits the input data, i.e., the data of the input first mathematical formula and the data of the first graph area (first coordinate range; for example, in the initial setting, -5≦x≦5, -5≦y≦5) set on the first graph sticky note 32a, together with a request to draw a graph to the server 20 (step S103).

[0034] In response to the request to draw a graph, the server 20 calculates the coordinates of the plot points to be plotted on the first graph tag 32a based on the input data received from the communication device 10 (step S104).

[0035] The server 20 transmits the coordinate data of the plotted points calculated in step S104 to the communication device 10 (step S105).

[0036] The communication device 10 creates and displays a first graph sticky note 32a using the coordinate data of the plot points received from the server 20 (step S106). The communication device 10 draws a graph of the first mathematical formula in the first graph area of ​​the first graph sticky note 32a using the coordinates of the plot points calculated by the server 20. As shown in FIG. 6, the display screen 30 of the communication device 10 displays the first formula sticky note 31a and the associated first graph sticky note 32a, connected by a line 35a. In addition, a tab 37a is displayed accompanying the first graph sticky note 32a.

[0037] In step S106, together with drawing the graph, the coordinate data of the plot points received from the server 20 is stored in the storage 13. The communication device 10 stores the coordinate data of the plot points of the first mathematical formula in the first graph area of ​​the first graph sticky note 32a in the storage 13 in association with the first mathematical formula and the first graph area.

[0038] Next, the user selects the formula input button 41 again, as in the display screen 30 shown in Fig. 7. Note that because the toolbar 40 is hidden along with the display of the first graph sticky note 32a on the display screen 30 shown in Fig. 6, the toolbar 40 is redisplayed on the display screen 30 shown in Fig. 7 before selecting the formula input button 41, but the toolbar 40 may be always displayed. The communication device 10 accepts an instruction to input a second formula sticky note (step S107).

[0039] After step S107, as shown in FIG. 8, the key input unit 46 is displayed again on the display screen 30 of the communication device 10 together with the second formula tag 31b. The user uses the key input unit 46 to input, for example, the second formula y=x into the second formula tag 31b and confirms it by selecting the execute key. The communication device 10 accepts the formula input into the second formula tag 31b and executes a process of confirming the formula input into the second formula tag 31b as the second formula (step S108). After this confirmation process, the communication device 10 accepts a request to draw a graph, for example, by selecting the graph display button 42 on the toolbar 40 or by this confirmation process.

[0040] 4 to 7 and the display screen 30 shown in Figure 8 onwards have different sizes, but all of them are single-screen displays. Single-screen display is not only when the entire screen is displayed in a window on the display output unit 16 of the communication device 10, but also when the entire screen does not fit in the window and the entire screen must be viewed by scrolling or the like.

[0041] The communication device 10 transmits the input data, i.e., the data of the input second mathematical formula and the data of the second graph area (second coordinate range; for example, in the initial setting, -5≦x≦5, -5≦y≦5) set on the second graph sticky note 32b, together with a request to draw a graph to the server 20 (step S109).

[0042] In response to the request to draw a graph, the server 20 calculates the coordinates of the plot points to be plotted on the second graph tag 32b based on the input data received from the communication device 10 (step S110).

[0043] The server 20 transmits the coordinate data of the plotted points calculated in step S110 to the communication device 10 (step S111).

[0044] The communication device 10 creates and displays a second graph sticky note 32b using the coordinates of the plot points received from the server 20 (step S112). The communication device 10 draws a graph of the second mathematical formula in the second graph area of ​​the second graph sticky note 32b using the coordinates of the plot points calculated by the server 20. As shown in FIG. 9, on the display screen 30 of the communication device 10, in addition to the first formula sticky note 31a and the first graph sticky note 32a, the second formula sticky note 31b and the second graph sticky note 32b linked thereto are displayed, connected by a line 35b. Furthermore, a tab 37b is displayed accompanying the second graph sticky note 32b.

[0045] In step S112, together with drawing the graph, the coordinate data of the plot points received from the server 20 is stored in the storage 13. The communication device 10 stores the coordinate data of the plot points of the second mathematical formula in the second graph area of ​​the second graph sticky note 32b in the storage 13 in association with the second mathematical formula and the second graph area.

[0046] By the above steps S101 to S112, two graph tags 32a and 32b as shown in FIG.

[0047] In step S109, before starting communication processing with the server 20, the data of the second mathematical formula may be compared with the data of the first mathematical formula, and the second graph area may be compared with the first graph area. If they are identical, the coordinate data of the plot points of the second mathematical formula in the second graph area of ​​the second graph sticky note 32b is the same as the coordinate data of the plot points of the first mathematical formula, and therefore recalculation by the server 20 is not necessary. Therefore, if it is determined that the data of the second mathematical formula and the data of the first mathematical formula are identical and that the second graph area and the first graph area are identical, the communication processing with the server 20 (S109, S110, S111) may not be performed, and the second graph sticky note 32b may be immediately created and displayed using the coordinates of the plot points of the first mathematical formula (FIG. 3A also shows an arrow proceeding from step S108 to step S112).

[0048] The following describes the process of merging two graph sticky notes 32a and 32b into one graph sticky note.

[0049] FIG. 3B shows an example of a process in which, after the process shown in FIG. 3A, the graph area of ​​the first graph sticky note 32a is changed from the first graph area to a third graph area and the graph is redrawn.

[0050] For example, the user moves cursor 45 onto the first graph area of ​​first graph sticky note 32a on display screen 30, and while it is selected, moves (drags) it in the direction of dashed downward arrow A shown in FIG. 10. Communication device 10 accepts the selection of the first graph sticky note and an instruction to move the first graph sticky note display area (step S113). As a result, the first graph area is changed from -5≦x≦5, -5≦y≦5 to, for example, -1≦x≦9, -1≦y≦9. The new graph area after the move is referred to as the third graph area (coordinate range for integration).

[0051] Furthermore, when the communication device 10 receives an instruction to move the first graph sticky note display area, it accepts a request to draw a graph and transmits the data of the first mathematical formula and the data of the third graph area of ​​the first graph sticky note 32a to the server 20 together with the request to draw a graph (step S114).

[0052] In response to the request to draw a graph, the server 20 calculates the coordinates of a new plot point based on the input data received from the communication device 10, i.e., the data of the first mathematical formula and the data of the third graph area of ​​the first graph sticky note 32a (step S115).

[0053] The server 20 transmits the coordinate data of the new plot point after movement calculated in step S115 to the communication device 10 (step S116).

[0054] The communication device 10 uses the coordinates of the new plot point after the movement calculated by the server 20 to draw and display a graph of the first mathematical formula in the third graph area of ​​the first graph sticky note 32a, as shown in FIG. 11 (step S117).

[0055] 10 and 11, the tab 37a of the first graph sticky note 32a selected by the cursor 45 is shown shaded. In practice, it may be shown in color. Also, the border of the selected first graph sticky note 32a may be shown thicker than before selection.

[0056] In step S117, along with drawing the graph, data on the coordinates of the new plot points after the movement received from the server 20 is stored in the storage 13. The communication device 10 stores in the storage 13 the coordinate data of the plot points of the first mathematical formula in the third graph area of ​​the first graph sticky note 32a in association with the first mathematical formula and the third graph area.

[0057] FIG. 3C shows an example of a process in which two graph sticky notes 32a and 32b are integrated after the process shown in FIGS. 3A and 3B, i.e., a graph area integration process for two graph sticky notes 32a and 32b with different graph areas.

[0058] For example, the user moves cursor 45 onto the second graph area of ​​second graph sticky note 32b on display screen 30, and while it is selected, moves second graph sticky note 32b in the direction of dashed upward arc arrow B in Fig. 12 to overlap (drag-and-drop) first graph sticky note 32a. Communication device 10 accepts the instruction to select the second graph sticky note and drag-and-drop second graph sticky note 32b onto first graph sticky note 32a (step S118).

[0059] After step S118, the communication device 10 determines whether or not the server 20 needs to recalculate the coordinate data of the plot points, and determines that recalculation is necessary (step S119). Details of the determination will be described later. Here, since recalculation is necessary, the communication device 10 accepts a request to draw a graph.

[0060] The communication device 10 transmits the data of the second mathematical formula and the third graph area of ​​the first graph sticky note 32a to the server 20 together with a request to draw a graph (step S120).

[0061] In response to the request to draw a graph, the server 20 calculates the coordinates of the plot points (third plot points) to be plotted as a graph of the second mathematical formula on the first graph sticky note 32a based on the input data received from the communication device 10 (step S121).

[0062] The server 20 transmits the coordinate data of the plotted points calculated in step S121 to the communication device 10 (step S122).

[0063] After step S122, the communication device 10 uses the coordinates of the plot points received from the server 20 to draw a graph of the second formula superimposed on the third graph area of ​​the first graph sticky 32a, where the graph of the first formula has already been drawn (step S123). In step S123, along with drawing the graph, the coordinate data of the new plot points received from the server 20 is stored in the storage 13. The communication device 10 associates the coordinate data of the plot points of the second formula in the third graph area of ​​the first graph sticky 32a with the second formula and the third graph area, and stores them in the storage 13. Also, in step S123, the communication device 10 executes a process of merging the two formula sticky notes 31a and 31b.

[0064] 13 is a diagram showing an example of the display screen 30 when two graph sticky notes 32a and 32b are integrated. Here, the second graph sticky note 32b is integrated into the first graph sticky note 32a, and the first mathematical formula y=x is displayed in the third graph area of ​​the first graph sticky note 32a. 2 A graph of +3 and a graph of the second mathematical formula y=x are drawn. The first formula tag 31a and the second formula tag 31b have also been integrated, so they are displayed together. The integrated formula tags 31a and 31b are a single floating object and can be moved together.

[0065] The communication device 10 may store the data of the first and second mathematical expressions and the third graph area in association with the integrated graph sticky note.

[0066] 12 and 13, the tab 37b of the second graph tag 32b that was dragged and dropped in step S118 is shown in a shaded area. In practice, it may be shown in color.

[0067] The integration process may involve drawing two graphs on a new graph sticky note that is different from the first graph sticky note 32a and the second graph sticky note 32b. For example, the graph area of ​​the new graph sticky note may be the graph area of ​​the first graph sticky note 32a, and the graph of the first mathematical formula and the graph of the second mathematical formula may be drawn therein.

[0068] 13, the marks or colors written before the formulas of the tab 37a and the first formula tag 31a are displayed in the same manner, and similarly, the marks or colors written before the formulas of the tab 37b and the second formula tag 32b are displayed in the same manner. The colors of the lines of the graphs may also be displayed in the same manner.

[0069] In the above example, the sizes of the x-range and y-range of the first and second graph areas of the two graph sticky notes 32a and 32b are the same, but they do not have to be the same. In other words, zoom-in and zoom-out operations may be performed.

[0070] Up to this point, specific operations have been described assuming that the processes shown in Figures 3A, 3B, and 3C are performed in this order, but it is of course possible to proceed to the process shown in Figure 3C after the process shown in Figure 3A (Figure 3C also shows an arrow going from step S119 to step S123). If recalculation is not required, the integration process can be performed directly without inquiring of server 20. Below, the integration process of two graph sticky notes 32a and 32b in this embodiment will be described using a generalized flowchart of the integration process of two graph sticky notes 32a and 32b shown in Figure 3C.

[0071] 14 is a diagram showing an example of a flowchart for the operation of merging two sticky notes. This corresponds to steps S118 to S123 in FIG. 3C. In particular, the recalculation determination in step S119 corresponds to steps S202, S203, and S205.

[0072] The communication device 10 accepts a process of dragging and dropping a second sticky note onto a first sticky note (step S201).

[0073] The communication device 10 determines whether the type of the first sticky note is a graph sticky note (step S202). If it is determined that the type is not a graph sticky note (step S202-No), the process proceeds to step S204. If it is determined that the type is a graph sticky note (step S202-Yes), the process proceeds to step S203.

[0074] In step S203, the communication device 10 determines whether the type of the second sticky note is a graph sticky note. If it is determined that the type is not a graph sticky note (step S203-No), the process proceeds to step S204. If it is determined that the type is a graph sticky note (step S203-Yes), the process proceeds to step S205.

[0075] Therefore, if the type of the first sticky note is not a graph sticky note (step S202-No), or if the type of the first sticky note is a graph sticky note but the type of the second sticky note is not a graph sticky note (step S203-No), the process proceeds to step S204. In step S204, the communication device 10 executes a process of displaying the second sticky note superimposed on the first sticky note. After step S204, the process ends.

[0076] If it is determined that both the first and second sticky notes are graph sticky notes (step S203-Yes), the process proceeds to step S205. In step S205, the communication device 10 determines whether the graph area of ​​the first sticky note and the graph area of ​​the second sticky note are different.

[0077] If it is determined that the graph areas of the two sticky notes are not different, i.e., are the same (step S205-No), the process proceeds to step S206. In step S206, the communication device 10 draws a graph of the mathematical formula linked to the second sticky note in the graph area (integrated coordinates) of the first sticky note. The two equation sticky notes are also integrated. After step S206, the process ends.

[0078] If it is determined that the graph areas of the two sticky notes are different (step S205-No), the process proceeds to step S207. In step S207, the communication device 10 transmits data of the second mathematical formula linked to the second sticky note and data of the graph area of ​​the first sticky note to the server 20, and acquires data of the coordinates of the plot points calculated by the server 20 based on this. Note that even if the graph areas are different, recalculation may not be necessary if they are included in the original graph area.

[0079] Then, in step S208, communication device 10 uses the coordinate data of the acquired plot points to draw a graph of the second mathematical formula linked to the second sticky note in the graph area (integrated coordinates) of the first sticky note. Also, the two equation sticky notes are integrated. After step S208, the process ends.

[0080] As described above, in this embodiment, when a drag-and-drop operation is performed to overlay one sticky note on another, if neither sticky note is a graph sticky note, the merging process is not performed, and the other sticky note is simply overlaid on top of the other sticky note. If both sticky notes are graph sticky notes, the merging process is executed. At this time, if the graph areas of one graph sticky note (the sticky note to be merged) and the other graph sticky note (the sticky note to be merged) match, the coordinate data of the calculated plot points of the sticky note to be merged is read out and drawn over the graph area of ​​the sticky note to be merged. On the other hand, if the graph areas of the sticky note to be merged and the sticky note to be merged differ, the formula data of the formula sticky note linked to the sticky note to be merged and the data of the graph area of ​​the sticky note to be merged are sent to the server 20, and the coordinates of the plot points are recalculated by the server 20 based on these. Then, using the coordinates of the recalculated plot points, a graph based on the formula data of the formula sticky note linked to the sticky note to be merged is drawn over the graph area of ​​the sticky note to be merged, for example.

[0081] That is, if the graph areas of the two graph sticky notes 32a, 32b that are overlaid by drag-and-drop processing match, it is possible to use the coordinate data of the plot points stored in the storage 13 to draw the graph, and the two graph sticky notes 32a, 32b are integrated without recalculation on the server 20. Also, if the graph areas of the two graph sticky notes 32a, 32b are different, only one of the coordinate data of the plot points of the two graph sticky notes 32a, 32b stored in the storage 13 can be used as is, and the other is not available or has insufficient data, so recalculation is performed on the server 20.

[0082] Although the integration process has been described as drawing a graph of the mathematical expression linked to the graph sticky note (upper graph sticky note) that is overlaid by drag-and-drop in the graph area (integrated coordinates) of the graph sticky note (lower graph sticky note) that is overlaid by drag-and-drop, the reverse is also possible. That is, communication device 10 may be configured to draw a graph of the mathematical expression linked to the graph sticky note (lower graph sticky note) that is overlaid by drag-and-drop in the graph area (integrated coordinates) of the graph sticky note (upper graph sticky note).

[0083] That is, according to this embodiment, when either the first formula entered in the first formula sticky note or the second formula entered in the second formula sticky note is the formula to be integrated and the other is the formula to be integrated, the CPU 11 has the function of a graph integration unit that draws, in one graph identification unit displayed on the display unit, a graph representing the formula to be integrated in an integration coordinate range that is the coordinate range associated with the formula to be integrated out of the first coordinate range set in the first graph sticky note 32a and the second coordinate range set in the second graph sticky note 32b, together with a graph representing the formula to be integrated out of the first graph drawn in the first graph sticky note 32a and the second graph drawn in the second graph sticky note 32b.

[0084] Furthermore, the integration process is not limited to the examples given above, and may be configured to draw a graph of the formula linked to the graph sticky note to be overlaid and a graph of the formula linked to the graph sticky note to be overlaid in another graph area (one coordinate range; integration coordinate range) determined based on the graph area (one of the first coordinate range and the second coordinate range) of the graph sticky note (one of the first area and the second area) that is overlaid by drag and drop and the graph area (the other of the first coordinate range and the second coordinate range) of the graph sticky note to be overlaid (the other of the first area and the second area).

[0085] In other words, when either the graph area of ​​the graph sticky note to be superimposed or the graph area of ​​the graph to be superimposed is set as the coordinate range for integration, there may be a case where either the entire graph of the mathematical formula linked to the graph sticky note to be superimposed or the entire graph of the mathematical formula linked to the graph sticky note to be superimposed is outside the coordinate range for integration. Therefore, when such a condition is met, by setting a separate graph area as described above, it is possible to display both the graph representing the mathematical formula linked to the graph sticky note to be superimposed and the graph representing the mathematical formula linked to the graph sticky note to be superimposed so that they are both visible on the display screen of the display unit. This allows the user to easily grasp the relative positional relationship of the two graphs after integration, which is thought to contribute to improving learning effectiveness.

[0086] In addition to the integration process performed by drag-and-drop, the integration process may be performed by displaying an integration button on the display screen 30 as a dedicated icon for instructing the merging of two graph sticky notes and selecting this button. The integration button is displayed, for example, when the user selects any location on the screen and selects "Show / Hide Integration Button" from the displayed menu. In this case, for example, by selecting two graph sticky notes and then selecting the integration button, the two graph sticky notes are merged into a single graph sticky note. The user can also appropriately set which graph sticky note's graph area to use in the merged graph sticky note. For example, the communication device 10 may switch the graph area of ​​the first graph sticky note 32a to the graph area of ​​the second graph sticky note 32b in response to an instruction to merge using the integration button.

[0087] As described above, in this embodiment, when one graph sticky note is dragged and dropped onto another graph sticky note, the graph of one equation sticky note is drawn to fit into the graph area of ​​the other graph sticky note, thereby merging the two equation sticky notes. Therefore, in this embodiment, the two graphs can be easily merged with a simple operation, thereby improving the operability of graph drawing.

[0088] Furthermore, when merging two formula sticky notes, at least one of the coordinate data of the two plot points already stored in the communication device 10 is reused, thereby reducing the amount of calculations performed by the server 20 and improving the operating speed. In other words, unnecessary calculations can be eliminated. Furthermore, communication between the client device and the server device due to calculations can be minimized.

[0089] In addition, when dragging and dropping sticky notes other than graph sticky notes, they can be overlaid as a normal overlay operation. While normal overlay is possible, graph composition can also be performed with simple operations.

[0090] Although the above has described the merging of two sticky notes, the number of sticky notes is not limited to this. Three or more sticky notes can also be merged in the same way.

[0091] Furthermore, since the storage 13 of the communication device 10 stores the coordinates of plot points associated with the formulas and graph areas, it is also possible to separate the graph sticky notes 32a and 32b after the integration. The separation operation is accepted and executed by the communication device 10, for example, when the user selects and drags the tab 37a associated with the first graph sticky note 32a or the tab 37b associated with the second graph sticky note 32b. After the separation, as shown in FIG. 9 , the first formula sticky note 31a, the first graph sticky note 32a, the line 35a, and the tab 37a, and the second formula sticky note 31b, the second graph sticky note 32b, the line 35b, and the tab 37b are displayed. After the separation, the graph sticky note that was dragged and dropped may be displayed in a position corresponding to the dropped position, or the first graph sticky note 32a and the first graph sticky note 32a may be displayed aligned. During separation, the communication device 10 can reuse the coordinate data of the plot points of the first mathematical formula in the first graph area of ​​the first graph sticky note 32a and the coordinate data of the plot points of the second mathematical formula in the second graph area of ​​the second graph sticky note 32b that were stored in the storage 13 in the aforementioned steps S106, S112, S117 and S123, so communication processing with the server 20 is not required.

[0092] Note that the processing performed by the communication device 10 may be performed by the server 20. In particular, it is worthwhile to perform heavy processing on the server 20. For example, step S119 of the process shown in FIG. 3C may be executed by the server 20, and the coordinate data of the plot points calculated in steps S104, S110, S115, and S121 shown in FIGS. 3A to 3C may be stored in the mass storage 23 of the server 20 together with the formula data and graph area data, and this data read from the mass storage 23 can be used in determining whether to recalculate in step S119.

[0093] The present invention is not limited to the above-described embodiments, and various modifications can be made in the implementation stage without departing from the spirit of the invention. Furthermore, the embodiments may be implemented in appropriate combinations, in which case the combined effects can be obtained. Furthermore, the above-described embodiments include various inventions, and various inventions can be extracted by combining selected elements from the disclosed elements. For example, if the problem can be solved and the desired effect can be obtained even if some elements are deleted from all elements shown in the embodiments, the configuration from which these elements are deleted can be extracted as an invention.

[0094] The inventions described in the claims of the present application as originally filed are set forth below. [1] A client device comprising a control unit that displays, on a display screen of a display unit, first coordinates in which a first coordinate range corresponding to an input first mathematical formula is set and second coordinates in which a second coordinate range corresponding to an input second mathematical formula is set, accepts a user operation to superimpose at least a portion of a first area in which the first coordinates are displayed on the display screen of the display unit over a second area in which the second coordinates are displayed, and, in response to accepting the user operation, displays, on the display screen of the display unit, integrated coordinates in which an integrated coordinate range determined based on the first coordinate range and the second coordinate range is set, and draws a first graph representing the first mathematical formula and a second graph representing the second mathematical formula at the integrated coordinates displayed on the display screen of the display unit. [2] The client device described in [1], wherein when one of the first formula and the second formula is a formula to be integrated and the other is a formula to be integrated, the control unit, in response to receiving the user operation, draws a graph representing the formula to be integrated on the display screen of the display unit together with a graph representing the formula to be integrated based on plot points calculated using one coordinate range identified by the coordinate range for integration, which is a coordinate range associated with the formula to be integrated from among the first coordinate range and the second coordinate range. [3] The client device described in [2], wherein when the control unit receives the user operation, if the first coordinate range and the second coordinate range do not match, the control unit draws a graph representing the formula to be integrated on the display screen of the display unit together with a graph representing the formula to be integrated based on a third plot point calculated using the one coordinate range and the formula to be integrated. [4] The client device described in [2] or [3], wherein when the control unit receives the user operation, if the first coordinate range and the second coordinate range match, it reads from the storage unit plot points calculated using the coordinate range associated with the formula to be integrated and the formula to be integrated and stored in the storage unit, and draws, on the display screen of the display unit, a graph representing the formula to be integrated together with a graph representing the formula to be integrated based on the plot points read from the storage unit. [5] The client device described in any one of [2] to [4], wherein the control unit sets another coordinate range different from the first coordinate range and the second coordinate range as the one coordinate range, draws a graph representing the formula to be integrated at the one coordinate where the one coordinate range is set based on plot points calculated using the one coordinate range and the formula to be integrated, and draws a graph representing the formula to be integrated based on plot points calculated using the one coordinate range and the formula to be integrated. [6] A client device described in any one of [1] to [5], wherein the control unit, before accepting the user operation, associates the first mathematical formula, the first coordinate range, and a first plot point calculated using the first coordinate range and the first mathematical formula, and stores them in a memory unit, and associates the second mathematical formula, the second coordinate range, and a second plot point calculated using the second coordinate range and the second mathematical formula, and stores them in the memory unit. [7] The control unit transmits the first mathematical formula, the second mathematical formula, the first coordinate range, the second coordinate range, and the one coordinate range to a server device, and transmits to the server a first plot point calculated by the server device based on the first mathematical formula and the first coordinate range, a second plot point calculated by the server device based on the second mathematical formula and the second coordinate range, and, if the first coordinate range and the second coordinate range are different, a third plot point calculated by the server device based on either the first mathematical formula or the second mathematical formula and the one coordinate range. a client device according to any one of [1] to [6], which receives the first plot point received from the server device from the server device, associates the first plot point received from the server device with the first mathematical formula and the first coordinate range and stores it in a memory unit, associates the second plot point received from the server device with the second mathematical formula and the second coordinate range and stores it in the memory unit, and, if the first coordinate range and the second coordinate range are different, associates the third plot point received from the server device with either the first mathematical formula or the second mathematical formula and the one coordinate range and stores it in the memory unit. [8] A method for calculating a first plot point based on the first formula and the first coordinate range, a second formula and a second coordinate range corresponding to the second formula from a client device, a method for calculating a first plot point based on the first formula and the first coordinate range, a method for storing the first plot point in a storage unit in association with the first formula, the first coordinate range and the first plot point, a method for calculating a second plot point based on the second formula and the second coordinate range, a method for storing the second plot point in a storage unit in association with the second formula, the second coordinate range and the second plot point, a method for transmitting the first plot point and the second plot point to the client device, a method for displaying a first coordinate in which the first coordinate range is set. a server device including a control unit that receives, by the client device, a user operation to overlay at least a portion of the area of ​​the first coordinate range on a second area displaying second coordinates for which the second coordinate range is set, and, when the first coordinate range and the second coordinate range do not match, calculates a third plot point using the formula to be integrated and one of the first formula and the second formula as a formula to be integrated, which is identified by a coordinate range for integration, which is a coordinate range associated with the formula to be integrated, from the first coordinate range and the second coordinate range, and transmits the third plot point to the client device. [9] A client device comprising a control unit that displays, on a display screen of a display unit, first coordinates in which a first coordinate range corresponding to an input first mathematical formula is set and second coordinates in which a second coordinate range corresponding to an input second mathematical formula is set, accepts an instruction to combine or superimpose a first area in which the first coordinates are displayed and a second area in which the second coordinates are displayed on the display screen of the display unit, and, if the first coordinate range and the second coordinate range do not match, draws, in either the first area or the second area on the display screen of the display unit, a graph representing either the first mathematical formula or the second mathematical formula, as well as a graph representing the other of the first mathematical formula and the second mathematical formula, based on a third plot point calculated using one coordinate range identified by an integration coordinate range, which is a coordinate range associated with one of the first coordinate range and the second coordinate range, and the other mathematical formula.

[10] A program for causing a computer to function as a control unit that displays, on a display screen of a display unit, first coordinates in which a first coordinate range corresponding to an input first mathematical formula is set, and second coordinates in which a second coordinate range corresponding to an input second mathematical formula is set, accepts a user operation to superimpose at least a portion of the first area in which the first coordinates are displayed on the display screen of the display unit over a second area in which the second coordinates are displayed, and, in response to accepting the user operation, displays, on the display screen of the display unit, integrated coordinates in which an integrated coordinate range determined based on the first coordinate range and the second coordinate range is set, and draws a first graph representing the first mathematical formula and a second graph representing the second mathematical formula on the integrated coordinates displayed on the display screen of the display unit.

[11] A computer receives from a client device a first mathematical formula, a first coordinate range corresponding to the first mathematical formula, a second mathematical formula, and a second coordinate range corresponding to the second mathematical formula, calculates a first plot point based on the first mathematical formula and the first coordinate range, associates the first mathematical formula, the first coordinate range, and the first plot point with each other and stores them in a storage unit, calculates a second plot point based on the second mathematical formula and the second coordinate range, associates the second mathematical formula, the second coordinate range, and the second plot point with each other and stores them in a storage unit, transmits the first plot point and the second plot point to the client device, and displays the first coordinates in which the first coordinate range is set. A program for functioning as a control unit that receives a user operation by the client device to overlay at least a portion of a first area on a second area displaying second coordinates for which the second coordinate range is set, and, when the first coordinate range and the second coordinate range do not match, calculates a third plot point using one coordinate range identified by the integration coordinate range, which is the coordinate range associated with the formula to be integrated, among the first coordinate range and the second coordinate range, and the formula to be integrated, and transmits the third plot point to the client device, when one of the first formula and the second formula is a formula to be integrated and the other is a formula to be integrated, and the formula to be integrated, and when the first coordinate range and the second coordinate range do not match. [Explanation of symbols]

[0095] 1...system, 10...communication device (client device), 11...processor, 12...main memory, 13...storage (memory unit), 14...input unit, 15...communication unit, 16...display output unit, 17...system bus, 20...server (server device), 21...processor, 22...main memory, 23...mass storage (memory unit), 24...communication unit, 25...system bus, 30...display screen, 31, 31a, 31b...formula sticky notes, 32, 32a, 32b...graph sticky notes, 33...number table sticky notes, 34...memo sticky notes, 35, 35a, 35b, 36...lines, 37, 37a, 37b...tabs, 40...toolbar, 41...formula input button, 42...graph display button, 43...number table display button, 44...memo input button, 45...cursor, 46...key input unit.

Claims

1. displaying, on a display screen of a display unit, first coordinates in which a first coordinate range corresponding to the input first mathematical formula is set and second coordinates in which a second coordinate range corresponding to the input second mathematical formula is set; receiving a user operation to overlap at least a part of a first area, in which the first coordinates are displayed, on the display screen of the display unit with a second area, in which the second coordinates are displayed; a control unit that, in response to receiving the user operation, causes the display screen of the display unit to display integrated coordinates in which an integration coordinate range determined based on the first coordinate range and the second coordinate range is set, and draws a first graph representing the first mathematical expression and a second graph representing the second mathematical expression at the integrated coordinates displayed on the display screen of the display unit. A client device comprising:

2. When one of the first formula and the second formula is a formula to be integrated and the other is a formula to be integrated, The control unit 2. The client device according to claim 1, wherein, in response to receiving the user operation, a graph representing the formula to be integrated and a graph representing the formula to be integrated are drawn on the display screen of the display unit based on plot points calculated using one coordinate range identified by the coordinate range for integration, which is a coordinate range associated with the formula to be integrated out of the first coordinate range and the second coordinate range, and the formula to be integrated.

3. The control unit When the user operation is accepted, if the first coordinate range and the second coordinate range do not match, 3. The client device according to claim 2, wherein a graph representing the mathematical formula to be integrated, together with a graph representing the mathematical formula to be integrated, is drawn on the display screen of the display unit based on a third plot point calculated using the one coordinate range and the mathematical formula to be integrated.

4. The control unit When the user operation is accepted, if the first coordinate range and the second coordinate range match, reading out from the storage unit plot points calculated using the coordinate range associated with the target equations to be integrated and the target equations to be integrated and stored in the storage unit; 4. The client device according to claim 2, wherein a graph representing the integration target formula and a graph representing the integration-subject formula are drawn on the display screen of the display unit based on the plot points read out from the storage unit.

5. The control unit setting a coordinate range different from the first coordinate range and the second coordinate range as the one coordinate range; 5. The client device according to claim 2, wherein a graph representing the formula to be integrated is drawn at one coordinate for which the one coordinate range is set, based on plot points calculated using the one coordinate range and the formula to be integrated, and a graph representing the formula to be integrated is drawn based on plot points calculated using the one coordinate range and the formula to be integrated.

6. The control unit Before accepting the user operation, storing the first mathematical formula, the first coordinate range, and the first plot point calculated using the first coordinate range and the first mathematical formula in a storage unit in association with each other; A client device according to any one of claims 1 to 5, wherein the second formula, the second coordinate range, and a second plot point calculated using the second coordinate range and the second formula are associated with each other and stored in a memory unit.

7. The control unit transmitting the first mathematical formula, the second mathematical formula, the first coordinate range, the second coordinate range, and the one coordinate range to a server device; receiving from the server device a first plot point calculated by the server device based on the first mathematical formula and the first coordinate range, a second plot point calculated by the server device based on the second mathematical formula and the second coordinate range, and, when the first coordinate range and the second coordinate range are different, a third plot point calculated by the server device based on either the first mathematical formula or the second mathematical formula and the one coordinate range; A client device described in any one of claims 1 to 6, which associates the first plot point received from the server device with the first mathematical formula and the first coordinate range and stores it in a memory unit, associates the second plot point received from the server device with the second mathematical formula and the second coordinate range and stores it in a memory unit, and, if the first coordinate range and the second coordinate range are different, associates the third plot point received from the server device with either the first mathematical formula or the second mathematical formula and the one coordinate range and stores it in a memory unit.

8. receiving, from a client device, a first mathematical formula, a first coordinate range corresponding to the first mathematical formula, a second mathematical formula, and a second coordinate range corresponding to the second mathematical formula; calculating a first plot point based on the first mathematical formula and the first coordinate range; storing the first mathematical formula, the first coordinate range, and the first plotted point in a storage unit in association with each other; calculating a second plot point based on the second mathematical formula and the second coordinate range; storing the second mathematical formula, the second coordinate range, and the second plotted point in a storage unit in association with each other; transmitting the first plot point and the second plot point to the client device; receiving a notification that the client device has accepted a user operation to superimpose at least a part of a first area displaying first coordinates for which the first coordinate range is set on a second area displaying second coordinates for which the second coordinate range is set; When the first coordinate range and the second coordinate range do not match, when one of the first formula and the second formula is a formula to be integrated and the other is a formula to be integrated, a third plot point is calculated using one coordinate range specified by a coordinate range for integration, which is a coordinate range associated with the formula to be integrated out of the first coordinate range and the second coordinate range, and the formula to be integrated; a control unit that transmits the third plot point to the client device; A server device comprising:

9. displaying, on a display screen of a display unit, first coordinates in which a first coordinate range corresponding to the input first mathematical formula is set and second coordinates in which a second coordinate range corresponding to the input second mathematical formula is set; receiving an instruction to combine or superimpose a first area in which the first coordinates are displayed and a second area in which the second coordinates are displayed on the display screen of the display unit; a control unit that, when the first coordinate range and the second coordinate range do not match, draws, in either the first area or the second area on the display screen of the display unit, a graph representing one of the first mathematical formula and the second mathematical formula, and a graph representing the other of the first mathematical formula and the second mathematical formula, based on a third plot point calculated using one coordinate range specified by an integration coordinate range that is a coordinate range associated with one of the first coordinate range and the second coordinate range, and the other mathematical formula. A client device comprising:

10. Computer, displaying, on a display screen of a display unit, first coordinates in which a first coordinate range corresponding to the input first mathematical formula is set and second coordinates in which a second coordinate range corresponding to the input second mathematical formula is set; receiving a user operation to overlap at least a part of a first area, in which the first coordinates are displayed, on the display screen of the display unit with a second area, in which the second coordinates are displayed; a control unit that, in response to receiving the user operation, causes the display screen of the display unit to display integrated coordinates in which an integration coordinate range determined based on the first coordinate range and the second coordinate range is set, and draws a first graph representing the first mathematical expression and a second graph representing the second mathematical expression at the integrated coordinates displayed on the display screen of the display unit. A program to function as a

11. Computer, receiving, from a client device, a first mathematical formula, a first coordinate range corresponding to the first mathematical formula, a second mathematical formula, and a second coordinate range corresponding to the second mathematical formula; calculating a first plot point based on the first mathematical formula and the first coordinate range; storing the first mathematical formula, the first coordinate range, and the first plotted point in a storage unit in association with each other; calculating a second plot point based on the second mathematical formula and the second coordinate range; storing the second mathematical formula, the second coordinate range, and the second plotted point in a storage unit in association with each other; transmitting the first plot point and the second plot point to the client device; receiving a notification that the client device has accepted a user operation to superimpose at least a part of a first area displaying first coordinates for which the first coordinate range is set on a second area displaying second coordinates for which the second coordinate range is set; When the first coordinate range and the second coordinate range do not match, when one of the first formula and the second formula is a formula to be integrated and the other is a formula to be integrated, a third plot point is calculated using one coordinate range specified by a coordinate range for integration, which is a coordinate range associated with the formula to be integrated out of the first coordinate range and the second coordinate range, and the formula to be integrated; a control unit that transmits the third plot point to the client device; A program to function as a