| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- const cartesianToPolar = ({x, y}) => ({r: Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)), t: Math.atan2(y, x)})
- const polarToCartesian = ({r, t}) => ({x: r * Math.cos(t), y: r * Math.sin(t)})
- const findMemory = (mem) => {
- let originalSnap = Object.assign({}, Array.from(mem))
- let snap = Object.assign({}, Array.from(mem))
- let criteria = () => true
- let finalCriteria = () => true
- const check = () => {
- for (let key of Object.keys(snap)) {
- if (!criteria(mem[key], snap[key])) delete snap[key]
- else snap[key] = mem[key]
- }
- return o
- }
- const result = () => {
- console.log(
- Object.keys(snap)
- .filter(x => finalCriteria(snap[x], originalSnap[x]))
- .map(x => `0x${x.toString(16).padStart(4, '0')}`)
- )
- }
- const setCriteria = (c, f) => {
- criteria = c
- finalCriteria = f
- return o
- }
- const o = {
- with: c => setCriteria(c),
- increasing: () => setCriteria((a, b) => a >= b, (a, b) => a > b),
- decreasing: () => setCriteria((a, b) => a <= b, (a, b) => a > b),
- static: () => setCriteria((a, b) => a === b, () => true),
- check,
- result
- }
- return o
- }
- module.exports = {
- cartesianToPolar,
- polarToCartesian,
- findMemory
- }
|