updating hash table animation
This commit is contained in:
committed by
JamesFlare1212
parent
cc21696e46
commit
506ab00200
@@ -98,9 +98,10 @@ const steps =
|
|||||||
{mainHighlight: [2], funcHighlight: [15], action: null, console: "Creating new node"},
|
{mainHighlight: [2], funcHighlight: [15], action: null, console: "Creating new node"},
|
||||||
{mainHighlight: [2], funcHighlight: [16], action: null, console: "Setting name: dan"},
|
{mainHighlight: [2], funcHighlight: [16], action: null, console: "Setting name: dan"},
|
||||||
{mainHighlight: [2], funcHighlight: [17], action: null, console: "Setting number: 5182764321"},
|
{mainHighlight: [2], funcHighlight: [17], action: null, console: "Setting number: 5182764321"},
|
||||||
{mainHighlight: [2], funcHighlight: [18], action: null, console: "Setting next pointer"},
|
{mainHighlight: [2], funcHighlight: [18], action: {type: 'highlight_memory', index: 1, color: '#00FF00'}, console: "Setting next pointer"},
|
||||||
{mainHighlight: [2], funcHighlight: [19], action: {type: 'add', index: 1, name: 'dan', number: '5182764321'}, console: "Adding node to index 1"},
|
{mainHighlight: [2], funcHighlight: [19], action: {type: 'add', index: 1, name: 'dan', number: '5182764321', color: '#0000FF'}, console: "Adding node to index 1"},
|
||||||
{mainHighlight: [2], funcHighlight: [20], action: null, console: "Returning from add function"},
|
{mainHighlight: [2], funcHighlight: [20], action: {type: 'highlight_memory', index: 1, color: '#343434'}, console: "Returning from add function"},
|
||||||
|
{mainHighlight: [2], funcHighlight: [20], action: {type: 'highlight_person', index: 1, name: 'dan', number: '5182764321', color: '#222'}, console: "Returning from add function"},
|
||||||
|
|
||||||
// Add fred
|
// Add fred
|
||||||
{mainHighlight: [3], funcHighlight: [], action: null, console: "Adding entry: fred (6173551212)"},
|
{mainHighlight: [3], funcHighlight: [], action: null, console: "Adding entry: fred (6173551212)"},
|
||||||
@@ -112,9 +113,10 @@ const steps =
|
|||||||
{mainHighlight: [3], funcHighlight: [15], action: null, console: "Creating new node"},
|
{mainHighlight: [3], funcHighlight: [15], action: null, console: "Creating new node"},
|
||||||
{mainHighlight: [3], funcHighlight: [16], action: null, console: "Setting name: fred"},
|
{mainHighlight: [3], funcHighlight: [16], action: null, console: "Setting name: fred"},
|
||||||
{mainHighlight: [3], funcHighlight: [17], action: null, console: "Setting number: 6173551212"},
|
{mainHighlight: [3], funcHighlight: [17], action: null, console: "Setting number: 6173551212"},
|
||||||
{mainHighlight: [3], funcHighlight: [18], action: null, console: "Setting next pointer"},
|
{mainHighlight: [3], funcHighlight: [18], action: {type: 'highlight_memory', index: 2, color: '#00FF00'}, console: "Setting next pointer"},
|
||||||
{mainHighlight: [3], funcHighlight: [19], action: {type: 'add', index: 2, name: 'fred', number: '6173551212'}, console: "Adding node to index 2"},
|
{mainHighlight: [3], funcHighlight: [19], action: {type: 'add', index: 2, name: 'fred', number: '6173551212', color: '#0000FF'}, console: "Adding node to index 2"},
|
||||||
{mainHighlight: [3], funcHighlight: [20], action: null, console: "Returning from add function"},
|
{mainHighlight: [3], funcHighlight: [20], action: {type: 'highlight_memory', index: 2, color: '#343434'}, console: "Returning from add function"},
|
||||||
|
{mainHighlight: [3], funcHighlight: [20], action: {type: 'highlight_person', index: 2, name: 'fred', number: '6173551212', color: '#222'}, console: "Returning from add function"},
|
||||||
|
|
||||||
// Add alice
|
// Add alice
|
||||||
{mainHighlight: [4], funcHighlight: [], action: null, console: "Adding entry: alice (5182761234)"},
|
{mainHighlight: [4], funcHighlight: [], action: null, console: "Adding entry: alice (5182761234)"},
|
||||||
@@ -126,9 +128,10 @@ const steps =
|
|||||||
{mainHighlight: [4], funcHighlight: [15], action: null, console: "Creating new node"},
|
{mainHighlight: [4], funcHighlight: [15], action: null, console: "Creating new node"},
|
||||||
{mainHighlight: [4], funcHighlight: [16], action: null, console: "Setting name: alice"},
|
{mainHighlight: [4], funcHighlight: [16], action: null, console: "Setting name: alice"},
|
||||||
{mainHighlight: [4], funcHighlight: [17], action: null, console: "Setting number: 5182761234"},
|
{mainHighlight: [4], funcHighlight: [17], action: null, console: "Setting number: 5182761234"},
|
||||||
{mainHighlight: [4], funcHighlight: [18], action: null, console: "Setting next pointer"},
|
{mainHighlight: [4], funcHighlight: [18], action: {type: 'highlight_memory', index: 4, color: '#00FF00'}, console: "Setting next pointer"},
|
||||||
{mainHighlight: [4], funcHighlight: [19], action: {type: 'add', index: 4, name: 'alice', number: '5182761234'}, console: "Adding node to index 4"},
|
{mainHighlight: [4], funcHighlight: [19], action: {type: 'add', index: 4, name: 'alice', number: '5182761234', color: '#0000FF'}, console: "Adding node to index 4"},
|
||||||
{mainHighlight: [4], funcHighlight: [20], action: null, console: "Returning from add function"},
|
{mainHighlight: [4], funcHighlight: [20], action: {type: 'highlight_memory', index: 4, color: '#343434'}, console: "Returning from add function"},
|
||||||
|
{mainHighlight: [4], funcHighlight: [20], action: {type: 'highlight_person', index: 4, name: 'alice', number: '5182761234', color: '#222'}, console: "Returning from add function"},
|
||||||
|
|
||||||
// Add carol
|
// Add carol
|
||||||
{mainHighlight: [5], funcHighlight: [], action: null, console: "Adding entry: carol (5182761267)"},
|
{mainHighlight: [5], funcHighlight: [], action: null, console: "Adding entry: carol (5182761267)"},
|
||||||
@@ -140,9 +143,10 @@ const steps =
|
|||||||
{mainHighlight: [5], funcHighlight: [15], action: null, console: "Creating new node"},
|
{mainHighlight: [5], funcHighlight: [15], action: null, console: "Creating new node"},
|
||||||
{mainHighlight: [5], funcHighlight: [16], action: null, console: "Setting name: carol"},
|
{mainHighlight: [5], funcHighlight: [16], action: null, console: "Setting name: carol"},
|
||||||
{mainHighlight: [5], funcHighlight: [17], action: null, console: "Setting number: 5182761267"},
|
{mainHighlight: [5], funcHighlight: [17], action: null, console: "Setting number: 5182761267"},
|
||||||
{mainHighlight: [5], funcHighlight: [18], action: null, console: "Setting next pointer"},
|
{mainHighlight: [5], funcHighlight: [18], action: {type: 'highlight_memory', index: 7, color: '#00FF00'}, console: "Setting next pointer"},
|
||||||
{mainHighlight: [5], funcHighlight: [19], action: {type: 'add', index: 7, name: 'carol', number: '5182761267'}, console: "Adding node to index 7"},
|
{mainHighlight: [5], funcHighlight: [19], action: {type: 'add', index: 7, name: 'carol', number: '5182761267', color: '#0000FF'}, console: "Adding node to index 7"},
|
||||||
{mainHighlight: [5], funcHighlight: [20], action: null, console: "Returning from add function"},
|
{mainHighlight: [5], funcHighlight: [20], action: {type: 'highlight_memory', index: 7, color: '#343434'}, console: "Returning from add function"},
|
||||||
|
{mainHighlight: [5], funcHighlight: [20], action: {type: 'highlight_person', index: 7, name: 'carol', number: '5182761267', color: '#222'}, console: "Returning from add function"},
|
||||||
|
|
||||||
// Add bob
|
// Add bob
|
||||||
{mainHighlight: [6], funcHighlight: [], action: null, console: "Adding entry: bob (5182765678)"},
|
{mainHighlight: [6], funcHighlight: [], action: null, console: "Adding entry: bob (5182765678)"},
|
||||||
@@ -154,9 +158,10 @@ const steps =
|
|||||||
{mainHighlight: [6], funcHighlight: [15], action: null, console: "Creating new node"},
|
{mainHighlight: [6], funcHighlight: [15], action: null, console: "Creating new node"},
|
||||||
{mainHighlight: [6], funcHighlight: [16], action: null, console: "Setting name: bob"},
|
{mainHighlight: [6], funcHighlight: [16], action: null, console: "Setting name: bob"},
|
||||||
{mainHighlight: [6], funcHighlight: [17], action: null, console: "Setting number: 5182765678"},
|
{mainHighlight: [6], funcHighlight: [17], action: null, console: "Setting number: 5182765678"},
|
||||||
{mainHighlight: [6], funcHighlight: [18], action: null, console: "Setting next pointer"},
|
{mainHighlight: [6], funcHighlight: [18], action: {type: 'highlight_memory', index: 8, color: '#00FF00'}, console: "Setting next pointer"},
|
||||||
{mainHighlight: [6], funcHighlight: [19], action: {type: 'add', index: 8, name: 'bob', number: '5182765678'}, console: "Adding node to index 8"},
|
{mainHighlight: [6], funcHighlight: [19], action: {type: 'add', index: 8, name: 'bob', number: '5182765678', color: '#0000FF'}, console: "Adding node to index 8"},
|
||||||
{mainHighlight: [6], funcHighlight: [20], action: null, console: "Returning from add function"},
|
{mainHighlight: [6], funcHighlight: [20], action: {type: 'highlight_memory', index: 8, color: '#343434'}, console: "Returning from add function"},
|
||||||
|
{mainHighlight: [6], funcHighlight: [20], action: {type: 'highlight_person', index: 8, name: 'bob', number: '5182765678', color: '#222'}, console: "Returning from add function"},
|
||||||
|
|
||||||
// Add erin
|
// Add erin
|
||||||
{mainHighlight: [7], funcHighlight: [], action: null, console: "Adding entry: erin (5182764488)"},
|
{mainHighlight: [7], funcHighlight: [], action: null, console: "Adding entry: erin (5182764488)"},
|
||||||
@@ -168,9 +173,10 @@ const steps =
|
|||||||
{mainHighlight: [7], funcHighlight: [15], action: null, console: "Creating new node"},
|
{mainHighlight: [7], funcHighlight: [15], action: null, console: "Creating new node"},
|
||||||
{mainHighlight: [7], funcHighlight: [16], action: null, console: "Setting name: erin"},
|
{mainHighlight: [7], funcHighlight: [16], action: null, console: "Setting name: erin"},
|
||||||
{mainHighlight: [7], funcHighlight: [17], action: null, console: "Setting number: 5182764488"},
|
{mainHighlight: [7], funcHighlight: [17], action: null, console: "Setting number: 5182764488"},
|
||||||
{mainHighlight: [7], funcHighlight: [18], action: null, console: "Setting next pointer"},
|
{mainHighlight: [7], funcHighlight: [18], action: {type: 'highlight_memory', index: 8, color: '#00FF00'}, console: "Setting next pointer"},
|
||||||
{mainHighlight: [7], funcHighlight: [19], action: {type: 'add', index: 8, name: 'erin', number: '5182764488', chain: true}, console: "Adding node to index 8 (chaining)"},
|
{mainHighlight: [7], funcHighlight: [19], action: {type: 'add', index: 8, name: 'erin', number: '5182764488', chain: true, color: '#0000FF'}, console: "Adding node to index 8 (chaining)"},
|
||||||
{mainHighlight: [7], funcHighlight: [20], action: null, console: "Returning from add function"},
|
{mainHighlight: [7], funcHighlight: [20], action: {type: 'highlight_memory', index: 8, color: '#343434'}, console: "Returning from add function"},
|
||||||
|
{mainHighlight: [7], funcHighlight: [20], action: {type: 'highlight_person', index: 8, name: 'erin', number: '5182764488', color: '#222'}, console: "Returning from add function"},
|
||||||
|
|
||||||
// Identify dan
|
// Identify dan
|
||||||
{mainHighlight: [8], funcHighlight: [], action: null, console: "Searching for number: 5182764321"},
|
{mainHighlight: [8], funcHighlight: [], action: null, console: "Searching for number: 5182764321"},
|
||||||
@@ -179,12 +185,12 @@ const steps =
|
|||||||
{mainHighlight: [8], funcHighlight: [10], action: null, console: "Entering hash_function"},
|
{mainHighlight: [8], funcHighlight: [10], action: null, console: "Entering hash_function"},
|
||||||
{mainHighlight: [8], funcHighlight: [11], action: null, console: "5182764321 % 10 = 1"},
|
{mainHighlight: [8], funcHighlight: [11], action: null, console: "5182764321 % 10 = 1"},
|
||||||
{mainHighlight: [8], funcHighlight: [22], action: null, console: "Hash index: 1"},
|
{mainHighlight: [8], funcHighlight: [22], action: null, console: "Hash index: 1"},
|
||||||
{mainHighlight: [8], funcHighlight: [23], action: null, console: "Starting search at index 1"},
|
{mainHighlight: [8], funcHighlight: [23], action: {type: 'highlight_memory', index: 1, color: '#00FF00'}, console: "Starting search at index 1"},
|
||||||
{mainHighlight: [8], funcHighlight: [24], action: null, console: "phonebook[1] is not nullptr(true)"},
|
{mainHighlight: [8], funcHighlight: [24], action: null, console: "phonebook[1] is not nullptr(true)"},
|
||||||
{mainHighlight: [8], funcHighlight: [25], action: null, console: "5182764321 == 5182764321(true)"},
|
{mainHighlight: [8], funcHighlight: [25], action: null, console: "5182764321 == 5182764321(true)"},
|
||||||
{mainHighlight: [8], funcHighlight: [26], action: null, console: "Returning: dan"},
|
{mainHighlight: [8], funcHighlight: [26], action: {type: 'idan', index: 1, name: 'dan', color: '#0000FF'}, console: "Returning: dan"},
|
||||||
{mainHighlight: [8], funcHighlight: [31], action: null, console: "Returning from identify function"},
|
{mainHighlight: [8], funcHighlight: [31], action: {type: 'idan', index: 1, name: 'dan', color: '#222'}, console: "Returning from identify function"},
|
||||||
{mainHighlight: [8], funcHighlight: [], action: null, console: "Identify 5182764321: dan"},
|
{mainHighlight: [8], funcHighlight: [], action: {type: 'highlight_memory', index: 1, color: '#343434'}, console: "Identify 5182764321: dan"},
|
||||||
|
|
||||||
// Identify erin
|
// Identify erin
|
||||||
{mainHighlight: [9], funcHighlight: [], action: null, console: "Searching for number: 5182764488"},
|
{mainHighlight: [9], funcHighlight: [], action: null, console: "Searching for number: 5182764488"},
|
||||||
@@ -193,15 +199,15 @@ const steps =
|
|||||||
{mainHighlight: [9], funcHighlight: [10], action: null, console: "Entering hash_function"},
|
{mainHighlight: [9], funcHighlight: [10], action: null, console: "Entering hash_function"},
|
||||||
{mainHighlight: [9], funcHighlight: [11], action: null, console: "5182764488 % 10 = 8"},
|
{mainHighlight: [9], funcHighlight: [11], action: null, console: "5182764488 % 10 = 8"},
|
||||||
{mainHighlight: [9], funcHighlight: [22], action: null, console: "Hash index: 8"},
|
{mainHighlight: [9], funcHighlight: [22], action: null, console: "Hash index: 8"},
|
||||||
{mainHighlight: [9], funcHighlight: [23], action: null, console: "Starting search at index 8"},
|
{mainHighlight: [9], funcHighlight: [23], action: {type: 'highlight_memory', index: 8, color: '#00FF00'}, console: "Starting search at index 8"},
|
||||||
{mainHighlight: [9], funcHighlight: [24], action: null, console: "phonebook[8] is not nullptr(true)"},
|
{mainHighlight: [9], funcHighlight: [24], action: null, console: "phonebook[8] is not nullptr(true)"},
|
||||||
{mainHighlight: [9], funcHighlight: [25], action: null, console: "5182765678 != 5182764488(false)"},
|
{mainHighlight: [9], funcHighlight: [25], action: null, console: "5182765678 != 5182764488(false)"},
|
||||||
{mainHighlight: [9], funcHighlight: [28], action: null, console: "Moving to next node"},
|
{mainHighlight: [9], funcHighlight: [28], action: null, console: "Moving to next node"},
|
||||||
{mainHighlight: [9], funcHighlight: [24], action: null, console: "phonebook[8]->next is not nullptr(true)"},
|
{mainHighlight: [9], funcHighlight: [24], action: null, console: "phonebook[8]->next is not nullptr(true)"},
|
||||||
{mainHighlight: [9], funcHighlight: [25], action: null, console: "5182764488 == 5182764488(true)"},
|
{mainHighlight: [9], funcHighlight: [25], action: null, console: "5182764488 == 5182764488(true)"},
|
||||||
{mainHighlight: [9], funcHighlight: [26], action: null, console: "Returning: erin"},
|
{mainHighlight: [9], funcHighlight: [26], action: {type: 'ierin', index: 8, name: 'erin', color: '#0000FF'}, console: "Returning: erin"},
|
||||||
{mainHighlight: [9], funcHighlight: [31], action: null, console: "Returning from identify function"},
|
{mainHighlight: [9], funcHighlight: [31], action: {type: 'ierin', index: 8, name: 'erin', color: '#222'}, console: "Returning from identify function"},
|
||||||
{mainHighlight: [9], funcHighlight: [], action: null, console: "Identify 5182764488: erin"},
|
{mainHighlight: [9], funcHighlight: [], action: {type: 'highlight_memory', index: 8, color: '#343434'}, console: "Identify 5182764488: erin"},
|
||||||
|
|
||||||
// Identify fred
|
// Identify fred
|
||||||
{mainHighlight: [10], funcHighlight: [], action: null, console: "Searching for number: 6173551212"},
|
{mainHighlight: [10], funcHighlight: [], action: null, console: "Searching for number: 6173551212"},
|
||||||
@@ -210,12 +216,12 @@ const steps =
|
|||||||
{mainHighlight: [10], funcHighlight: [10], action: null, console: "Entering hash_function"},
|
{mainHighlight: [10], funcHighlight: [10], action: null, console: "Entering hash_function"},
|
||||||
{mainHighlight: [10], funcHighlight: [11], action: null, console: "6173551212 % 10 = 2"},
|
{mainHighlight: [10], funcHighlight: [11], action: null, console: "6173551212 % 10 = 2"},
|
||||||
{mainHighlight: [10], funcHighlight: [22], action: null, console: "Hash index: 2"},
|
{mainHighlight: [10], funcHighlight: [22], action: null, console: "Hash index: 2"},
|
||||||
{mainHighlight: [10], funcHighlight: [23], action: null, console: "Starting search at index 2"},
|
{mainHighlight: [10], funcHighlight: [23], action: {type: 'highlight_memory', index: 2, color: '#00FF00'}, console: "Starting search at index 2"},
|
||||||
{mainHighlight: [10], funcHighlight: [24], action: null, console: "phonebook[2] is not nullptr(true)"},
|
{mainHighlight: [10], funcHighlight: [24], action: null, console: "phonebook[2] is not nullptr(true)"},
|
||||||
{mainHighlight: [10], funcHighlight: [25], action: null, console: "6173551212 == 6173551212(true)"},
|
{mainHighlight: [10], funcHighlight: [25], action: null, console: "6173551212 == 6173551212(true)"},
|
||||||
{mainHighlight: [10], funcHighlight: [26], action: null, console: "Returning: fred"},
|
{mainHighlight: [10], funcHighlight: [26], action: {type: 'ifred', index: 2, name: 'fred', color: '#0000FF'}, console: "Returning: fred"},
|
||||||
{mainHighlight: [10], funcHighlight: [31], action: null, console: "Returning from identify function"},
|
{mainHighlight: [10], funcHighlight: [31], action: {type: 'ifred', index: 2, name: 'fred', color: '#222'}, console: "Returning from identify function"},
|
||||||
{mainHighlight: [10], funcHighlight: [], action: null, console: "Identify 6173551212: fred"},
|
{mainHighlight: [10], funcHighlight: [], action: {type: 'highlight_memory', index: 2, color: '#343434'}, console: "Identify 6173551212: fred"},
|
||||||
|
|
||||||
// Identify not found
|
// Identify not found
|
||||||
{mainHighlight: [11], funcHighlight: [], action: null, console: "Searching for number: 1234567890"},
|
{mainHighlight: [11], funcHighlight: [], action: null, console: "Searching for number: 1234567890"},
|
||||||
@@ -281,9 +287,34 @@ function nextstep()
|
|||||||
highlightCodeLines(step.mainHighlight, step.funcHighlight);
|
highlightCodeLines(step.mainHighlight, step.funcHighlight);
|
||||||
|
|
||||||
// Perform the action first
|
// Perform the action first
|
||||||
if (step.action && step.action.type === 'add')
|
if (step.action)
|
||||||
{
|
{
|
||||||
addNodeToMemory(step.action.index, step.action.name, step.action.number, step.action.chain);
|
if (step.action.type === 'add')
|
||||||
|
{
|
||||||
|
addNodeToMemory(step.action.index, step.action.name, step.action.number, step.action.chain, step.action.color);
|
||||||
|
}
|
||||||
|
else if (step.action.type === 'highlight_memory')
|
||||||
|
{
|
||||||
|
highlightMemoryBox(step.action.index, step.action.color);
|
||||||
|
}
|
||||||
|
else if (step.action.type === 'idan')
|
||||||
|
{
|
||||||
|
highlightPersonBox(step.action.index, step.action.name, 5182764321, step.action.color);
|
||||||
|
}
|
||||||
|
else if (step.action.type === 'ierin')
|
||||||
|
{
|
||||||
|
highlightPersonBox(step.action.index, step.action.name, 5182764488, step.action.color);
|
||||||
|
}
|
||||||
|
else if (step.action.type === 'ifred')
|
||||||
|
{
|
||||||
|
highlightPersonBox(step.action.index, step.action.name, 6173551212, step.action.color);
|
||||||
|
}
|
||||||
|
else if (step.action.type === 'highlight_person')
|
||||||
|
{
|
||||||
|
highlightPersonBox(step.action.index, step.action.name, step.action.number, step.action.color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Then show the console message
|
// Then show the console message
|
||||||
if (step.console)
|
if (step.console)
|
||||||
{
|
{
|
||||||
@@ -292,23 +323,6 @@ function nextstep()
|
|||||||
|
|
||||||
layer.draw();
|
layer.draw();
|
||||||
++stepIndex;
|
++stepIndex;
|
||||||
|
|
||||||
}
|
|
||||||
else if (step.action && step.action.type === 'identify')
|
|
||||||
{
|
|
||||||
highlightIdentifyPath(step.action.index, step.action.path);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// No action, just show console message
|
|
||||||
if (step.console)
|
|
||||||
{
|
|
||||||
addConsoleText(step.console);
|
|
||||||
}
|
|
||||||
|
|
||||||
layer.draw();
|
|
||||||
++stepIndex;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
window.nextstep = nextstep;
|
window.nextstep = nextstep;
|
||||||
@@ -577,7 +591,7 @@ for (let i = 0; i < funcCodeLines.length; ++i)
|
|||||||
|
|
||||||
let memoryNodes = {};
|
let memoryNodes = {};
|
||||||
|
|
||||||
function addNodeToMemory(index, name, number, chain = false)
|
function addNodeToMemory(index, name, number, chain = false, color = '#222')
|
||||||
{
|
{
|
||||||
if (!memoryNodes[index]) memoryNodes[index] = [];
|
if (!memoryNodes[index]) memoryNodes[index] = [];
|
||||||
let y = 60 + index * 50 + 10;
|
let y = 60 + index * 50 + 10;
|
||||||
@@ -593,8 +607,8 @@ function addNodeToMemory(index, name, number, chain = false)
|
|||||||
width: 100,
|
width: 100,
|
||||||
height: 30,
|
height: 30,
|
||||||
fill: '#fff',
|
fill: '#fff',
|
||||||
stroke: '#222',
|
stroke: color,
|
||||||
strokeWidth: 2,
|
strokeWidth: 4,
|
||||||
cornerRadius: 5,
|
cornerRadius: 5,
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -602,7 +616,7 @@ function addNodeToMemory(index, name, number, chain = false)
|
|||||||
({
|
({
|
||||||
x: x + 5,
|
x: x + 5,
|
||||||
y: y + 2,
|
y: y + 2,
|
||||||
text: number,
|
text: String(number),
|
||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
fontFamily: 'Consolas',
|
fontFamily: 'Consolas',
|
||||||
fill: '#333',
|
fill: '#333',
|
||||||
@@ -657,3 +671,64 @@ function addNodeToMemory(index, name, number, chain = false)
|
|||||||
layer.add(arrow);
|
layer.add(arrow);
|
||||||
memoryNodes[index].push({group, arrow});
|
memoryNodes[index].push({group, arrow});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function highlightMemoryBox(index, color)
|
||||||
|
{
|
||||||
|
// Find the memory box by its ID
|
||||||
|
const memoryBox = layer.findOne('#brec' + index);
|
||||||
|
|
||||||
|
if (memoryBox)
|
||||||
|
{
|
||||||
|
memoryBox.stroke(color);
|
||||||
|
memoryBox.strokeWidth(5);
|
||||||
|
layer.draw();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function highlightPersonBox(index, name, number, color)
|
||||||
|
{
|
||||||
|
let y = 60 + index * 50 + 10;
|
||||||
|
let x = 1725 + (memoryNodes[index].length - 1) * 150;
|
||||||
|
|
||||||
|
// Draw node group (rectangle + text)
|
||||||
|
let group = new Konva.Group();
|
||||||
|
|
||||||
|
let nodeRect = new Konva.Rect
|
||||||
|
({
|
||||||
|
x: x,
|
||||||
|
y: y,
|
||||||
|
width: 100,
|
||||||
|
height: 30,
|
||||||
|
fill: '#fff',
|
||||||
|
stroke: color,
|
||||||
|
strokeWidth: 4,
|
||||||
|
cornerRadius: 5,
|
||||||
|
});
|
||||||
|
|
||||||
|
let numberText = new Konva.Text
|
||||||
|
({
|
||||||
|
x: x + 5,
|
||||||
|
y: y + 2,
|
||||||
|
text: String(number),
|
||||||
|
fontSize: 12,
|
||||||
|
fontFamily: 'Consolas',
|
||||||
|
fill: '#333',
|
||||||
|
});
|
||||||
|
|
||||||
|
let nameText = new Konva.Text
|
||||||
|
({
|
||||||
|
x: x + 5,
|
||||||
|
y: y + 15,
|
||||||
|
text: name,
|
||||||
|
fontSize: 15,
|
||||||
|
fontFamily: 'Calibri',
|
||||||
|
fill: '#000',
|
||||||
|
fontStyle: 'bold',
|
||||||
|
});
|
||||||
|
|
||||||
|
group.add(nodeRect);
|
||||||
|
group.add(numberText);
|
||||||
|
group.add(nameText);
|
||||||
|
layer.add(group);
|
||||||
|
layer.draw();
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user