{"id":5689,"date":"2026-03-07T21:44:11","date_gmt":"2026-03-08T00:44:11","guid":{"rendered":"https:\/\/fisica2.fica.unsl.edu.ar\/?page_id=5689"},"modified":"2026-03-19T14:48:49","modified_gmt":"2026-03-19T17:48:49","slug":"ley_de_ohm","status":"publish","type":"page","link":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/ley_de_ohm\/","title":{"rendered":"ley_de_ohm"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5689\" class=\"elementor elementor-5689\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-591b644 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"591b644\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9ffac1d\" data-id=\"9ffac1d\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fce81e8 elementor-widget elementor-widget-html\" data-id=\"fce81e8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"es\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>FLUXAR - Ley de Ohm Microscopica<\/title>\r\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Space+Grotesk:wght@400;500;700&family=JetBrains+Mono:wght@400;500&display=swap\" rel=\"stylesheet\">\r\n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\r\n    \r\n    <style>\r\n        :root {\r\n            --bg-primary: #05080f;\r\n            --bg-panel: rgba(10, 14, 23, 0.85);\r\n            --text-primary: #e8edf5;\r\n            --text-secondary: #8b9cb8;\r\n            --accent-electron: #ef4444;\r\n            --accent-conductor: #3b82f6;\r\n            --accent-current: #22c55e;\r\n            --accent-field: #eab308;\r\n            --border-color: #2d3a4f;\r\n        }\r\n        \r\n        * { margin: 0; padding: 0; box-sizing: border-box; }\r\n        \r\n        body {\r\n            font-family: 'Space Grotesk', sans-serif;\r\n            background: var(--bg-primary);\r\n            color: var(--text-primary);\r\n            overflow: hidden;\r\n            height: 100vh;\r\n            width: 100vw;\r\n        }\r\n\r\n        \/* CANVAS DE FONDO (Pantalla Completa) *\/\r\n        #simulation-area {\r\n            position: fixed;\r\n            top: 0; left: 0;\r\n            width: 100%; height: 100%;\r\n            z-index: 1;\r\n            background: radial-gradient(circle at 50% 50%, #111827 0%, #05080f 80%);\r\n        }\r\n        \r\n        canvas { \r\n            display: block;\r\n            width: 100%;\r\n            height: 100%;\r\n        }\r\n\r\n        \/* PANELES FLOTANTES *\/\r\n        .panel-overlay {\r\n            position: fixed;\r\n            top: 20px;\r\n            bottom: 20px;\r\n            background: var(--bg-panel);\r\n            backdrop-filter: blur(12px);\r\n            border: 1px solid var(--border-color);\r\n            border-radius: 16px;\r\n            padding: 25px;\r\n            z-index: 10;\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: 20px;\r\n            overflow-y: auto;\r\n            transition: transform 0.3s ease, opacity 0.3s ease;\r\n            width: 320px;\r\n        }\r\n\r\n        .left-panel { left: 20px; }\r\n        .right-panel { right: 20px; }\r\n\r\n        \/* T\u00cdTULOS Y TIPOGRAF\u00cdA *\/\r\n        h1 { font-size: 1.2rem; font-weight: 700; letter-spacing: -0.02em; }\r\n        .subtitle { font-size: 0.75rem; color: var(--text-secondary); margin-top: 5px; opacity: 0.8; }\r\n        \r\n        .section { margin-bottom: 15px; }\r\n        .section-title { \r\n            font-size: 0.65rem; \r\n            color: var(--text-secondary); \r\n            text-transform: uppercase; \r\n            letter-spacing: 1.5px; \r\n            margin-bottom: 15px; \r\n            opacity: 0.6;\r\n        }\r\n\r\n        \/* CONTROLES *\/\r\n        .control-row { margin-bottom: 20px; }\r\n        .control-label { display: flex; justify-content: space-between; font-size: 0.85rem; margin-bottom: 8px; }\r\n        .value-display {\r\n            font-family: 'JetBrains Mono', monospace;\r\n            color: var(--accent-current);\r\n            font-size: 0.8rem;\r\n            background: rgba(34, 197, 94, 0.1);\r\n            padding: 2px 6px;\r\n            border-radius: 4px;\r\n        }\r\n        \r\n        input[type=\"range\"] {\r\n            width: 100%; height: 2px;\r\n            background: #1a2332;\r\n            border-radius: 1px;\r\n            outline: none;\r\n            -webkit-appearance: none;\r\n            cursor: pointer;\r\n        }\r\n        input[type=\"range\"]::-webkit-slider-thumb {\r\n            -webkit-appearance: none;\r\n            width: 12px; height: 12px;\r\n            background: var(--accent-current);\r\n            border-radius: 50%;\r\n            border: 2px solid var(--bg-primary);\r\n            box-shadow: 0 0 10px rgba(34, 197, 94, 0.5);\r\n        }\r\n\r\n        .toggle-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; font-size: 0.85rem; }\r\n        \r\n        .switch {\r\n            position: relative;\r\n            width: 36px; height: 20px;\r\n            background: #1a2332;\r\n            border-radius: 10px;\r\n            cursor: pointer;\r\n            transition: background 0.3s;\r\n            border: 1px solid rgba(255,255,255,0.1);\r\n        }\r\n        .switch.active { \r\n            background: rgba(34, 197, 94, 0.3); \r\n            border-color: var(--accent-current);\r\n        }\r\n        .switch::after {\r\n            content: '';\r\n            position: absolute;\r\n            top: 2px; left: 2px;\r\n            width: 14px; height: 14px;\r\n            background: #8b9cb8;\r\n            border-radius: 50%;\r\n            transition: all 0.3s;\r\n        }\r\n        .switch.active::after { \r\n            transform: translateX(16px); \r\n            background: var(--accent-current);\r\n            box-shadow: 0 0 8px var(--accent-current);\r\n        }\r\n\r\n        \/* TARJETAS DE DATOS *\/\r\n        .data-card {\r\n            background: rgba(255, 255, 255, 0.03);\r\n            border: 1px solid rgba(255,255,255,0.05);\r\n            border-radius: 8px;\r\n            padding: 15px;\r\n            margin-bottom: 12px;\r\n        }\r\n        .data-row { display: flex; justify-content: space-between; font-size: 0.8rem; margin-bottom: 8px; color: var(--text-secondary); }\r\n        .data-row:last-child { margin-bottom: 0; }\r\n        \r\n        .highlight-value { \r\n            font-family: 'JetBrains Mono', monospace; \r\n            color: white; \r\n            font-weight: 500;\r\n        }\r\n        .current-value { color: var(--accent-current); font-weight: 700; font-size: 0.9rem; }\r\n        .current-label { color: var(--accent-current); font-weight: 600; }\r\n\r\n        \/* CAJA DE F\u00d3RMULAS - ESTILO UNIFICADO *\/\r\n        .equation-box {\r\n            background: transparent;\r\n            border-top: 1px solid rgba(255,255,255,0.1);\r\n            padding-top: 20px;\r\n            text-align: center;\r\n            margin-top: auto;\r\n        }\r\n        \/* Ambas f\u00f3rmulas con el mismo estilo *\/\r\n        .eq-row {\r\n            font-family: 'JetBrains Mono', monospace;\r\n            font-size: 1.2rem; \/* Mismo tama\u00f1o *\/\r\n            color: white;     \/* Mismo color *\/\r\n            font-weight: 500; \/* Mismo peso *\/\r\n            margin-bottom: 10px;\r\n            text-shadow: 0 0 20px rgba(255,255,255,0.1);\r\n        }\r\n        .eq-row:last-child {\r\n            margin-bottom: 0;\r\n        }\r\n\r\n        \/* LOGO *\/\r\n        .logo-container {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 10px;\r\n            margin-top: 15px;\r\n            padding-top: 15px;\r\n            border-top: 1px solid rgba(255,255,255,0.1);\r\n        }\r\n        .logo-text { font-size: 0.8rem; color: var(--text-secondary); }\r\n        .logo-text b { display: block; color: white; font-size: 0.9rem; margin-bottom: 2px; }\r\n\r\n        \/* RESPONSIVE *\/\r\n        @media (max-width: 1000px) {\r\n            .panel-overlay {\r\n                position: fixed;\r\n                width: 100%;\r\n                height: auto;\r\n                max-height: 40vh;\r\n                top: auto;\r\n                bottom: 0;\r\n                left: 0;\r\n                right: 0;\r\n                border-radius: 16px 16px 0 0;\r\n            }\r\n            .left-panel { top: auto; bottom: 0; display: none; } \r\n            .right-panel { top: auto; bottom: 0; }\r\n        }\r\n        \r\n        .logo-box {\r\n            position: fixed;\r\n            bottom: 20px;\r\n            right: 20px;\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 10px;\r\n            background: rgba(22, 27, 34, 0.9);\r\n            padding: 10px 14px;\r\n            border-radius: 8px;\r\n            border: 1px solid var(--border-color);\r\n            z-index: 100;\r\n        }\r\n        .logo-img { width: 100px; }\r\n        .logo-text { font-size: 0.7rem; line-height: 1.3; color: var(--text-muted); }\r\n        .logo-text b { display: block; color: var(--text-main); font-weight: 600; }\r\n\r\n\r\n        \r\n        \r\n    <\/style>\r\n<\/head>\r\n<body>\r\n\r\n    <!-- \u00c1rea de Simulaci\u00f3n (Fondo Completo) -->\r\n    <div id=\"simulation-area\">\r\n        <canvas id=\"simCanvas\"><\/canvas>\r\n    <\/div>\r\n\r\n    <!-- Panel de Control Flotante Izquierdo -->\r\n    <div class=\"panel-overlay left-panel\">\r\n        <div>\r\n            <h1>Ley de Ohm Microscopica<\/h1>\r\n            <div class=\"subtitle\">Modelo de Drude - Visualizacion 2D<\/div>\r\n        <\/div>\r\n        \r\n        <div class=\"section\">\r\n            <div class=\"section-title\">Parametros<\/div>\r\n            \r\n            <div class=\"control-row\">\r\n                <div class=\"control-label\">\r\n                    <span>Densidad electronica (n)<\/span>\r\n                    <span class=\"value-display\" id=\"valDensity\">5.0<\/span>\r\n                <\/div>\r\n                <div style=\"font-size:0.7rem; color:var(--text-secondary); margin-bottom:5px;\">\u00d710\u00b2\u2078 electrones\/m\u00b3<\/div>\r\n                <input type=\"range\" id=\"sldDensity\" min=\"1\" max=\"10\" value=\"5\" step=\"0.1\">\r\n            <\/div>\r\n            \r\n            <div class=\"control-row\">\r\n                <div class=\"control-label\">\r\n                    <span>Radio del conductor<\/span>\r\n                    <span class=\"value-display\" id=\"valRadius\">1.0 mm<\/span>\r\n                <\/div>\r\n                <input type=\"range\" id=\"sldRadius\" min=\"0.5\" max=\"2\" value=\"1\" step=\"0.1\">\r\n            <\/div>\r\n        <\/div>\r\n        \r\n        <div class=\"section\">\r\n            <div class=\"section-title\">Campo Electrico<\/div>\r\n            <div class=\"toggle-row\">\r\n                <span>Aplicar Campo E<\/span>\r\n                <div class=\"switch\" id=\"tglField\"><\/div>\r\n            <\/div>\r\n            \r\n            <div id=\"fieldControls\" style=\"opacity: 0.3; pointer-events: none; margin-top: 15px; transition: opacity 0.3s;\">\r\n                <div class=\"control-row\" style=\"margin-bottom:0;\">\r\n                    <div class=\"control-label\"><span>Intensidad<\/span> <span class=\"value-display\" id=\"valField\">1.0<\/span><\/div>\r\n                    <div style=\"font-size:0.7rem; color:var(--text-secondary); margin-bottom:5px;\">\u00d710\u207b\u00b2 V\/m<\/div>\r\n                    <input type=\"range\" id=\"sldField\" min=\"0.1\" max=\"5\" value=\"1\" step=\"0.1\">\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n        \r\n        <div class=\"section\">\r\n            <div class=\"section-title\">Colisiones<\/div>\r\n            <div class=\"control-row\" style=\"margin-bottom:0;\">\r\n                <div class=\"control-label\"><span>Frecuencia<\/span> <span class=\"value-display\" id=\"valCollision\">1.0<\/span><\/div>\r\n                <div style=\"font-size:0.7rem; color:var(--text-secondary); margin-bottom:5px;\">\u00d710\u00b9\u2074 Hz<\/div>\r\n                <input type=\"range\" id=\"sldCollision\" min=\"0.2\" max=\"3\" value=\"1\" step=\"0.1\">\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"section\">\r\n            <div class=\"toggle-row\">\r\n                <span>Mostrar Seccion A-A<\/span>\r\n                <div class=\"switch active\" id=\"tglSection\"><\/div>\r\n            <\/div>\r\n            <div class=\"toggle-row\">\r\n                <span>Vectores y Polaridad<\/span>\r\n                <div class=\"switch active\" id=\"tglVectors\"><\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Panel de Informaci\u00f3n Flotante Derecho -->\r\n    <div class=\"panel-overlay right-panel\">\r\n        <div class=\"section-title\">Mediciones<\/div>\r\n        \r\n        <div class=\"data-card\">\r\n            <div class=\"data-row\"><span>Campo Electrico<\/span><span class=\"highlight-value\" id=\"infoE\">0.00 V\/m<\/span><\/div>\r\n            <div class=\"data-row\"><span>Vel. Deriva<\/span><span class=\"highlight-value\" id=\"infoVd\">0.00 m\/s<\/span><\/div>\r\n            <div class=\"data-row\"><span>Area<\/span><span class=\"highlight-value\" id=\"infoA\">3.14 mm\u00b2<\/span><\/div>\r\n            <div class=\"data-row\" style=\"margin-top: 8px; padding-top: 8px; border-top: 1px solid rgba(255,255,255,0.1);\">\r\n                <span class=\"current-label\">Corriente I<\/span>\r\n                <span class=\"current-value\" id=\"infoI\">0.00 A<\/span>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"data-card\" style=\"border-color: rgba(234, 179, 8, 0.3); text-align: center;\">\r\n            <div style=\"font-size:0.7rem; color:var(--text-secondary); margin-bottom:5px;\">Contador de Seccion<\/div>\r\n            <div style=\"font-size: 1.8rem; color: #eab308; font-family: 'JetBrains Mono', monospace; font-weight: bold;\" id=\"infoCounter\">0<\/div>\r\n        <\/div>\r\n\r\n        <div class=\"equation-box\">\r\n            <!-- F\u00f3rmulas con estilo id\u00e9ntico -->\r\n            <div class=\"eq-row\">v<sub>d<\/sub> = qE\u03c4 \/ m<\/div>\r\n            <div class=\"eq-row\">I = n q A v<sub>d<\/sub><\/div>\r\n            \r\n            \r\n            \r\n            <br><br><br>\r\n            \r\n            <!-- Logo -->\r\n<div class=\"logo-box\">\r\n    <a href=\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/FISAR_SIM\/\" target=\"_blank\">\r\n    <img decoding=\"async\" src=\"FISAR_SIM_1\" alt=\"Logo\" class=\"logo-img\"><\/a>\r\n    <div class=\"logo-text\"><b>FICA UNSL<\/b>Simulaciones Interactivas<\/div>\r\n<\/div>\r\n\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n        \/\/ --- MOTOR DE SIMULACI\u00d3N 2D ---\r\n        const canvas = document.getElementById('simCanvas');\r\n        const ctx = canvas.getContext('2d');\r\n        \r\n        function resizeCanvas() {\r\n            canvas.width = window.innerWidth;\r\n            canvas.height = window.innerHeight;\r\n        }\r\n        resizeCanvas();\r\n        window.addEventListener('resize', resizeCanvas);\r\n\r\n        \/\/ Constantes F\u00edsicas\r\n        const q = 1.602e-19; \/\/ Carga del electr\u00f3n\r\n        const m = 9.109e-31; \/\/ Masa del electr\u00f3n\r\n\r\n        \/\/ Estado\r\n        const state = {\r\n            n: 5.0, r: 1.0, E: 1.0, tau: 1.0,\r\n            fieldOn: false,\r\n            showSection: true,\r\n            showVectors: true\r\n        };\r\n\r\n        let electrons = [];\r\n        let counter = 0;\r\n        let lastTime = 0;\r\n\r\n        \/\/ Inicializar Electrones\r\n        function initElectrons() {\r\n            electrons = [];\r\n            \/\/ Escala visual: el radio de 1mm se mapea a 100px en pantalla\r\n            const visualRadius = 100 * state.r; \r\n            const len = canvas.width * 0.5; \/\/ El conductor ocupa la mitad de la pantalla\r\n            const count = 250; \r\n\r\n            for (let i = 0; i < count; i++) {\r\n                electrons.push({\r\n                    x: Math.random() * len - (len\/2),\r\n                    y: (Math.random() - 0.5) * visualRadius * 2,\r\n                    vx: (Math.random() - 0.5) * 2,\r\n                    vy: (Math.random() - 0.5) * 2,\r\n                    color: `hsl(${Math.random() * 20 + 350}, 90%, 60%)` \/\/ Rojo variado\r\n                });\r\n            }\r\n        }\r\n\r\n        \/\/ F\u00edsica\r\n        function updatePhysics(dt) {\r\n            const radiusM = state.r * 1e-3;\r\n            const A = Math.PI * radiusM * radiusM;\r\n            const nDens = state.n * 1e28;\r\n            const tauTime = 1 \/ (state.tau * 1e14);\r\n            const eField = state.fieldOn ? state.E * 1e-2 : 0;\r\n            \r\n            const vd = state.fieldOn ? (q * eField * tauTime) \/ m : 0;\r\n            const I = nDens * q * A * Math.abs(vd);\r\n\r\n            document.getElementById('infoE').innerText = eField.toExponential(2) + ' V\/m';\r\n            document.getElementById('infoVd').innerText = vd.toExponential(2) + ' m\/s';\r\n            document.getElementById('infoA').innerText = (A * 1e6).toFixed(2) + ' mm\u00b2';\r\n            document.getElementById('infoI').innerText = I.toExponential(2) + ' A';\r\n\r\n            \/\/ Escala Visual\r\n            const driftVisual = state.fieldOn ? state.E * 0.6 * (1\/state.tau) : 0;\r\n\r\n            const visualRadius = 100 * state.r;\r\n            const limitY = visualRadius * 0.95;\r\n            const limitX = (canvas.width * 0.5) \/ 2;\r\n\r\n            electrons.forEach(e => {\r\n                const prevX = e.x;\r\n                e.x += e.vx;\r\n                e.y += e.vy;\r\n\r\n                if (state.fieldOn) e.x -= driftVisual;\r\n\r\n                if (Math.random() < 0.015 * state.tau) {\r\n                    e.vx = (Math.random() - 0.5) * 2.5;\r\n                    e.vy = (Math.random() - 0.5) * 2.5;\r\n                }\r\n\r\n                if (Math.abs(e.y) > limitY) {\r\n                    e.y = limitY * Math.sign(e.y);\r\n                    e.vy *= -1;\r\n                }\r\n\r\n                if (e.x > limitX) { e.x = -limitX; e.passed = false; }\r\n                else if (e.x < -limitX) { e.x = limitX; e.passed = false; }\r\n\r\n                if (state.showSection && state.fieldOn) {\r\n                    if (prevX > 0 && e.x <= 0 && !e.passed) {\r\n                        counter++;\r\n                        e.passed = true;\r\n                    }\r\n                }\r\n            });\r\n            \r\n            document.getElementById('infoCounter').innerText = counter;\r\n        }\r\n\r\n        \/\/ Renderizado\r\n        function draw() {\r\n            ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n            \r\n            const cx = canvas.width \/ 2;\r\n            const cy = canvas.height \/ 2;\r\n            const visualRadius = 100 * state.r;\r\n            const len = canvas.width * 0.5;\r\n\r\n            \/\/ 1. Conductor (Cilindro)\r\n            ctx.fillStyle = 'rgba(30, 58, 95, 0.1)';\r\n            ctx.strokeStyle = '#3b82f6';\r\n            ctx.lineWidth = 2;\r\n            ctx.shadowColor = '#3b82f6';\r\n            ctx.shadowBlur = 15;\r\n            ctx.beginPath();\r\n            ctx.roundRect(-len\/2 + cx, -visualRadius + cy, len, visualRadius * 2, 40);\r\n            ctx.fill();\r\n            ctx.stroke();\r\n            ctx.shadowBlur = 0;\r\n\r\n            \/\/ 2. Secci\u00f3n Transversal\r\n            if (state.showSection) {\r\n                ctx.beginPath();\r\n                ctx.strokeStyle = 'rgba(34, 197, 94, 0.5)';\r\n                ctx.lineWidth = 2;\r\n                ctx.setLineDash([10, 10]);\r\n                ctx.moveTo(cx, cy - visualRadius - 20);\r\n                ctx.lineTo(cx, cy + visualRadius + 20);\r\n                ctx.stroke();\r\n                ctx.setLineDash([]);\r\n                \r\n                ctx.fillStyle = 'rgba(34, 197, 94, 0.7)';\r\n                ctx.font = '12px Space Grotesk';\r\n                ctx.fillText('SECCION A-A', cx + 10, cy - visualRadius - 25);\r\n            }\r\n\r\n            \/\/ 3. Vectores de Campo\r\n            if (state.showVectors && state.fieldOn) {\r\n                const arrowY = cy - visualRadius - 60;\r\n                \r\n                ctx.fillStyle = '#eab308';\r\n                ctx.strokeStyle = '#eab308';\r\n                ctx.lineWidth = 2;\r\n\r\n                \/\/ Flechas m\u00faltiples\r\n                const arrowCount = Math.floor(len \/ 150);\r\n                for (let i = 0; i < arrowCount; i++) {\r\n                    const xOff = (i - (arrowCount-1)\/2) * 150;\r\n                    drawArrow(ctx, cx + xOff - 20, arrowY, cx + xOff + 20, arrowY, 8);\r\n                }\r\n\r\n                \/\/ Polaridad\r\n                ctx.font = 'bold 30px Space Grotesk';\r\n                ctx.fillStyle = '#ef4444';\r\n                ctx.fillText('+', -len\/2 + cx - 30, cy + 10);\r\n                ctx.fillStyle = '#3b82f6';\r\n                ctx.fillText('-', len\/2 + cx + 15, cy + 10);\r\n\r\n                ctx.fillStyle = '#eab308';\r\n                ctx.font = 'bold 18px Space Grotesk';\r\n                ctx.fillText('E', cx, arrowY - 20);\r\n            }\r\n\r\n            \/\/ 4. Electrones\r\n            electrons.forEach(e => {\r\n                ctx.beginPath();\r\n                ctx.arc(e.x + cx, e.y + cy, 3.5, 0, Math.PI * 2);\r\n                ctx.fillStyle = e.color;\r\n                ctx.fill();\r\n                \r\n                \/\/ Signo -\r\n                ctx.fillStyle = 'rgba(255,255,255,0.8)';\r\n                ctx.fillRect(e.x + cx - 2, e.y + cy - 0.5, 4, 1);\r\n            });\r\n        }\r\n\r\n        function drawArrow(ctx, fromx, fromy, tox, toy, headlen) {\r\n            const dx = tox - fromx;\r\n            const dy = toy - fromy;\r\n            const angle = Math.atan2(dy, dx);\r\n            \r\n            ctx.beginPath();\r\n            ctx.moveTo(fromx, fromy);\r\n            ctx.lineTo(tox, toy);\r\n            ctx.stroke();\r\n            \r\n            ctx.beginPath();\r\n            ctx.moveTo(tox, toy);\r\n            ctx.lineTo(tox - headlen * Math.cos(angle - Math.PI \/ 6), toy - headlen * Math.sin(angle - Math.PI \/ 6));\r\n            ctx.lineTo(tox - headlen * Math.cos(angle + Math.PI \/ 6), toy - headlen * Math.sin(angle + Math.PI \/ 6));\r\n            ctx.closePath();\r\n            ctx.fill();\r\n        }\r\n\r\n        \/\/ Loop\r\n        function loop(timestamp) {\r\n            const dt = (timestamp - lastTime) \/ 1000;\r\n            lastTime = timestamp;\r\n            updatePhysics(dt);\r\n            draw();\r\n            requestAnimationFrame(loop);\r\n        }\r\n\r\n        \/\/ Controles\r\n        function setupControls() {\r\n            const bind = (id, stateKey, displayId) => {\r\n                const el = document.getElementById(id);\r\n                el.oninput = function() {\r\n                    state[stateKey] = parseFloat(this.value);\r\n                    document.getElementById(displayId).innerText = this.value;\r\n                    if (stateKey === 'r') initElectrons();\r\n                };\r\n            };\r\n            \r\n            bind('sldDensity', 'n', 'valDensity');\r\n            bind('sldRadius', 'r', 'valRadius');\r\n            bind('sldField', 'E', 'valField');\r\n            bind('sldCollision', 'tau', 'valCollision');\r\n            \r\n            document.getElementById('tglField').onclick = function() {\r\n                this.classList.toggle('active');\r\n                state.fieldOn = this.classList.contains('active');\r\n                const fc = document.getElementById('fieldControls');\r\n                fc.style.opacity = state.fieldOn ? '1' : '0.3';\r\n                fc.style.pointerEvents = state.fieldOn ? 'auto' : 'none';\r\n            };\r\n            \r\n            document.getElementById('tglSection').onclick = function() {\r\n                this.classList.toggle('active');\r\n                state.showSection = this.classList.contains('active');\r\n            };\r\n            \r\n            document.getElementById('tglVectors').onclick = function() {\r\n                this.classList.toggle('active');\r\n                state.showVectors = this.classList.contains('active');\r\n            };\r\n        }\r\n\r\n        \/\/ Inicio\r\n        setupControls();\r\n        initElectrons();\r\n        requestAnimationFrame(loop);\r\n\r\n    <\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>FLUXAR &#8211; Ley de Ohm Microscopica Ley de Ohm Microscopica Modelo de Drude &#8211; Visualizacion 2D Parametros Densidad electronica (n) 5.0 \u00d710\u00b2\u2078 electrones\/m\u00b3 Radio del&hellip;<\/p>\n","protected":false},"author":7,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-5689","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>ley_de_ohm - F\u00edsica 2<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/ley_de_ohm\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ley_de_ohm - F\u00edsica 2\" \/>\n<meta property=\"og:description\" content=\"FLUXAR &#8211; Ley de Ohm Microscopica Ley de Ohm Microscopica Modelo de Drude &#8211; Visualizacion 2D Parametros Densidad electronica (n) 5.0 \u00d710\u00b2\u2078 electrones\/m\u00b3 Radio del&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/ley_de_ohm\/\" \/>\n<meta property=\"og:site_name\" content=\"F\u00edsica 2\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-19T17:48:49+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/ley_de_ohm\/\",\"url\":\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/ley_de_ohm\/\",\"name\":\"ley_de_ohm - F\u00edsica 2\",\"isPartOf\":{\"@id\":\"https:\/\/fisica2.fica.unsl.edu.ar\/#website\"},\"datePublished\":\"2026-03-08T00:44:11+00:00\",\"dateModified\":\"2026-03-19T17:48:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/ley_de_ohm\/#breadcrumb\"},\"inLanguage\":\"es-AR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/ley_de_ohm\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/ley_de_ohm\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Inicio\",\"item\":\"https:\/\/fisica2.fica.unsl.edu.ar\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ley_de_ohm\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fisica2.fica.unsl.edu.ar\/#website\",\"url\":\"https:\/\/fisica2.fica.unsl.edu.ar\/\",\"name\":\"F\u00edsica 2\",\"description\":\"FICA - UNSL\",\"publisher\":{\"@id\":\"https:\/\/fisica2.fica.unsl.edu.ar\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fisica2.fica.unsl.edu.ar\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es-AR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/fisica2.fica.unsl.edu.ar\/#organization\",\"name\":\"SAC- Secretar\u00eda General FICA\",\"url\":\"https:\/\/fisica2.fica.unsl.edu.ar\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es-AR\",\"@id\":\"https:\/\/fisica2.fica.unsl.edu.ar\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/fisica2.fica.unsl.edu.ar\/wp-content\/uploads\/2021\/11\/SG-Logo.png\",\"contentUrl\":\"https:\/\/fisica2.fica.unsl.edu.ar\/wp-content\/uploads\/2021\/11\/SG-Logo.png\",\"width\":4483,\"height\":1231,\"caption\":\"SAC- Secretar\u00eda General FICA\"},\"image\":{\"@id\":\"https:\/\/fisica2.fica.unsl.edu.ar\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ley_de_ohm - F\u00edsica 2","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/ley_de_ohm\/","og_locale":"es_ES","og_type":"article","og_title":"ley_de_ohm - F\u00edsica 2","og_description":"FLUXAR &#8211; Ley de Ohm Microscopica Ley de Ohm Microscopica Modelo de Drude &#8211; Visualizacion 2D Parametros Densidad electronica (n) 5.0 \u00d710\u00b2\u2078 electrones\/m\u00b3 Radio del&hellip;","og_url":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/ley_de_ohm\/","og_site_name":"F\u00edsica 2","article_modified_time":"2026-03-19T17:48:49+00:00","twitter_card":"summary_large_image","twitter_misc":{"Tiempo de lectura":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/ley_de_ohm\/","url":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/ley_de_ohm\/","name":"ley_de_ohm - F\u00edsica 2","isPartOf":{"@id":"https:\/\/fisica2.fica.unsl.edu.ar\/#website"},"datePublished":"2026-03-08T00:44:11+00:00","dateModified":"2026-03-19T17:48:49+00:00","breadcrumb":{"@id":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/ley_de_ohm\/#breadcrumb"},"inLanguage":"es-AR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/ley_de_ohm\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/ley_de_ohm\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Inicio","item":"https:\/\/fisica2.fica.unsl.edu.ar\/"},{"@type":"ListItem","position":2,"name":"ley_de_ohm"}]},{"@type":"WebSite","@id":"https:\/\/fisica2.fica.unsl.edu.ar\/#website","url":"https:\/\/fisica2.fica.unsl.edu.ar\/","name":"F\u00edsica 2","description":"FICA - UNSL","publisher":{"@id":"https:\/\/fisica2.fica.unsl.edu.ar\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fisica2.fica.unsl.edu.ar\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es-AR"},{"@type":"Organization","@id":"https:\/\/fisica2.fica.unsl.edu.ar\/#organization","name":"SAC- Secretar\u00eda General FICA","url":"https:\/\/fisica2.fica.unsl.edu.ar\/","logo":{"@type":"ImageObject","inLanguage":"es-AR","@id":"https:\/\/fisica2.fica.unsl.edu.ar\/#\/schema\/logo\/image\/","url":"https:\/\/fisica2.fica.unsl.edu.ar\/wp-content\/uploads\/2021\/11\/SG-Logo.png","contentUrl":"https:\/\/fisica2.fica.unsl.edu.ar\/wp-content\/uploads\/2021\/11\/SG-Logo.png","width":4483,"height":1231,"caption":"SAC- Secretar\u00eda General FICA"},"image":{"@id":"https:\/\/fisica2.fica.unsl.edu.ar\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/pages\/5689","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/comments?post=5689"}],"version-history":[{"count":127,"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/pages\/5689\/revisions"}],"predecessor-version":[{"id":6691,"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/pages\/5689\/revisions\/6691"}],"wp:attachment":[{"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/media?parent=5689"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}