{"id":5824,"date":"2026-03-08T11:11:44","date_gmt":"2026-03-08T14:11:44","guid":{"rendered":"https:\/\/fisica2.fica.unsl.edu.ar\/?page_id=5824"},"modified":"2026-03-19T15:01:17","modified_gmt":"2026-03-19T18:01:17","slug":"dielectricos_capacitores","status":"publish","type":"page","link":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/dielectricos_capacitores\/","title":{"rendered":"dielectricos_capacitores"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5824\" class=\"elementor elementor-5824\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-14ee0f7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"14ee0f7\" 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-878a374\" data-id=\"878a374\" 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-3a2cbc6 elementor-widget elementor-widget-html\" data-id=\"3a2cbc6\" 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 - Capacitancia Placas Paralelas<\/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    <script src=\"https:\/\/unpkg.com\/three@0.128.0\/build\/three.min.js\"><\/script>\r\n    <script src=\"https:\/\/unpkg.com\/three@0.128.0\/examples\/js\/controls\/OrbitControls.js\"><\/script>\r\n\r\n    <style>\r\n        :root {\r\n            --bg-primary: #05080f;\r\n            --bg-panel: rgba(10, 14, 23, 0.92);\r\n            --text-primary: #e8edf5;\r\n            --text-secondary: #8b9cb8;\r\n            --accent-positive: #ef4444;\r\n            --accent-negative: #3b82f6;\r\n            --accent-energy: #eab308;\r\n            --accent-dielectric: #22c55e;\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-container {\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 100%);\r\n        }\r\n\r\n        .panel {\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: 15px;\r\n            overflow-y: auto;\r\n            width: 320px;\r\n            transition: transform 0.3s ease;\r\n        }\r\n\r\n        .left-panel { left: 20px; }\r\n        .right-panel { right: 20px; }\r\n\r\n        h1 { font-size: 1.1rem; font-weight: 700; margin-bottom: 5px; }\r\n        .subtitle { font-size: 0.75rem; color: var(--text-secondary); opacity: 0.8; margin-bottom: 15px; }\r\n\r\n        .section { margin-bottom: 15px; padding-bottom: 15px; border-bottom: 1px solid rgba(255,255,255,0.05); }\r\n        .section:last-child { border-bottom: none; }\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: 12px; \r\n        }\r\n\r\n        .control-group { margin-bottom: 18px; }\r\n        .control-label { display: flex; justify-content: space-between; font-size: 0.85rem; margin-bottom: 6px; }\r\n        .value-display {\r\n            font-family: 'JetBrains Mono', monospace;\r\n            color: var(--accent-energy);\r\n            font-size: 0.8rem;\r\n            background: rgba(234, 179, 8, 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-energy);\r\n            border-radius: 50%;\r\n            border: 2px solid var(--bg-primary);\r\n            box-shadow: 0 0 10px rgba(234, 179, 8, 0.5);\r\n        }\r\n\r\n        select {\r\n            width: 100%;\r\n            background: #1a2332;\r\n            border: 1px solid var(--border-color);\r\n            color: var(--accent-energy);\r\n            padding: 8px;\r\n            border-radius: 6px;\r\n            font-family: inherit;\r\n            font-weight: 600;\r\n            cursor: pointer;\r\n        }\r\n        select:focus { outline: none; border-color: var(--accent-energy); }\r\n\r\n        .toggle-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; font-size: 0.85rem; }\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 { background: rgba(34, 197, 94, 0.3); border-color: var(--accent-dielectric); }\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 { transform: translateX(16px); background: var(--accent-dielectric); box-shadow: 0 0 8px var(--accent-dielectric); }\r\n\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: 12px;\r\n            margin-bottom: 10px;\r\n        }\r\n        .data-row { display: flex; justify-content: space-between; font-size: 0.8rem; margin-bottom: 6px; }\r\n        .data-label { color: var(--text-secondary); }\r\n        .data-value { font-family: 'JetBrains Mono', monospace; color: white; font-weight: 500; }\r\n        .data-value.highlight { color: var(--accent-energy); }\r\n\r\n        .equations {\r\n            background: rgba(0,0,0,0.2);\r\n            border-radius: 8px;\r\n            padding: 12px;\r\n            margin-top: 5px;\r\n            font-family: 'JetBrains Mono', monospace;\r\n            font-size: 0.8rem;\r\n            color: rgba(255,255,255,0.7);\r\n            line-height: 1.6;\r\n        }\r\n        \r\n        .legend {\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: 6px;\r\n            margin-top: 10px;\r\n            font-size: 0.7rem;\r\n            color: var(--text-secondary);\r\n        }\r\n        .legend-item { display: flex; align-items: center; gap: 6px; }\r\n        .legend-color { width: 16px; height: 4px; border-radius: 2px; }\r\n\r\n        @media (max-width: 1000px) {\r\n            .panel { display: none; }\r\n            .left-panel { display: block; width: 100%; height: auto; max-height: 40vh; bottom: 0; top: auto; border-radius: 16px 16px 0 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    <\/style>\r\n<\/head>\r\n<body>\r\n\r\n    <div id=\"canvas-container\"><\/div>\r\n\r\n    <div class=\"panel left-panel\">\r\n        <div>\r\n            <h><strong>Capacitor de Placas Paralelas<\/strong><\/h>\r\n            <div class=\"subtitle\">Simulacion Fisica Interactiva<\/div>\r\n        <\/div>\r\n        \r\n        <div class=\"section\">\r\n            <div class=\"section-title\">Parametros Fisicos<\/div>\r\n            \r\n            <div class=\"control-group\">\r\n                <div class=\"control-label\"><span>Voltaje (V)<\/span><span class=\"value-display\" id=\"valV\">100 V<\/span><\/div>\r\n                <input type=\"range\" id=\"sldV\" min=\"0\" max=\"500\" value=\"100\">\r\n            <\/div>\r\n            \r\n            <div class=\"control-group\">\r\n                <div class=\"control-label\"><span>Area (A)<\/span><span class=\"value-display\" id=\"valA\">0.01 m\u00b2<\/span><\/div>\r\n                <input type=\"range\" id=\"sldA\" min=\"0.001\" max=\"0.02\" value=\"0.01\" step=\"0.001\">\r\n            <\/div>\r\n            \r\n            <div class=\"control-group\">\r\n                <div class=\"control-label\"><span>Separacion (d)<\/span><span class=\"value-display\" id=\"valD\">2.0 mm<\/span><\/div>\r\n                <input type=\"range\" id=\"sldD\" min=\"0.5\" max=\"10\" value=\"2\" step=\"0.1\">\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"section\">\r\n            <div class=\"section-title\">Material Dielectrico<\/div>\r\n            <select id=\"materialSelect\">\r\n                <option value=\"1\">Vacio (\u03b5r = 1.0)<\/option>\r\n                <option value=\"1.0006\">Aire (\u03b5r \u2248 1.0)<\/option>\r\n                <option value=\"4.0\">Vidrio (\u03b5r \u2248 4.0)<\/option>\r\n                <option value=\"2.1\">Teflon (\u03b5r \u2248 2.1)<\/option>\r\n                <option value=\"80\">Agua (\u03b5r \u2248 80)<\/option>\r\n            <\/select>\r\n            \r\n            <div class=\"toggle-row\" style=\"margin-top: 10px;\">\r\n                <span>Insertar Dielectrico<\/span>\r\n                <div class=\"switch active\" id=\"tglDielectric\"><\/div>\r\n            <\/div>\r\n            \r\n            <div class=\"toggle-row\">\r\n                <span>Ver Dipolos<\/span>\r\n                <div class=\"switch active\" id=\"tglDipoles\"><\/div>\r\n            <\/div>\r\n            \r\n             <div class=\"toggle-row\">\r\n                <span>Ver Vectores de Campo<\/span>\r\n                <div class=\"switch active\" id=\"tglVectors\"><\/div>\r\n            <\/div>\r\n        <\/div>\r\n        \r\n        <div class=\"section\">\r\n            <div class=\"section-title\">Leyendas de Campo<\/div>\r\n            <div class=\"legend\">\r\n                <div class=\"legend-item\"><div class=\"legend-color\" style=\"background:#ef4444\"><\/div>E0 (Vac\u00edo - Constante)<\/div>\r\n                <div class=\"legend-item\"><div class=\"legend-color\" style=\"background:#00bcd4\"><\/div>Ei (Inducido - Opuesto)<\/div>\r\n                <div class=\"legend-item\"><div class=\"legend-color\" style=\"background:#22c55e\"><\/div>E (Neto - Reducido)<\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"panel right-panel\">\r\n        <div class=\"section-title\">Resultados en Tiempo Real<\/div>\r\n        \r\n        <div class=\"data-card\">\r\n            <div class=\"data-row\"><span class=\"data-label\">Capacitancia (C)<\/span><span class=\"data-value highlight\" id=\"resC\">44.3 pF<\/span><\/div>\r\n            <div class=\"data-row\"><span class=\"data-label\">Carga (Q)<\/span><span class=\"data-value\" id=\"resQ\">4.43 nC<\/span><\/div>\r\n            <div class=\"data-row\"><span class=\"data-label\">Campo Electrico (E)<\/span><span class=\"data-value\" id=\"resE\">50.0 kV\/m<\/span><\/div>\r\n            <div class=\"data-row\"><span class=\"data-label\">Energia (U)<\/span><span class=\"data-value\" id=\"resU\">0.22 \u03bcJ<\/span><\/div>\r\n        <\/div>\r\n        \r\n        <div class=\"section-title\" style=\"margin-top: 10px;\">Modelo Matematico<\/div>\r\n        <div class=\"equations\">\r\n            <div>C = \u03b5\u2080 \u03b5\u1d63 A \/ d<\/div>\r\n            <div>Q = C \u00b7 V<\/div>\r\n            <div>E = V \/ d<\/div>\r\n            <div>U = \u00bd C V\u00b2<\/div>\r\n        <\/div>\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\r\n    <script>\r\n        \/\/ --- MOTOR 3D THREE.JS ---\r\n        let scene, camera, renderer, controls;\r\n        let capacitorGroup, plates = [], fieldLines = [], dipoles = [], chargeGroups = {pos: null, neg: null}, vectorGroup;\r\n        \r\n        \/\/ Estado\r\n        const state = {\r\n            V: 100,\r\n            A: 0.01,\r\n            d: 2.0,\r\n            er: 1.0,\r\n            material: \"Vacio\",\r\n            showDielectric: true,\r\n            showDipoles: true,\r\n            showVectors: true\r\n        };\r\n\r\n        \/\/ Constantes F\u00edsicas\r\n        const e0 = 8.854e-12;\r\n\r\n        function init3D() {\r\n            scene = new THREE.Scene();\r\n            scene.background = new THREE.Color(0x05080f);\r\n            \r\n            camera = new THREE.PerspectiveCamera(50, window.innerWidth \/ window.innerHeight, 0.1, 1000);\r\n            camera.position.set(0, 5, 12); \r\n            \r\n            renderer = new THREE.WebGLRenderer({ antialias: true });\r\n            renderer.setSize(window.innerWidth, window.innerHeight);\r\n            renderer.setPixelRatio(window.devicePixelRatio);\r\n            document.getElementById('canvas-container').appendChild(renderer.domElement);\r\n            \r\n            controls = new THREE.OrbitControls(camera, renderer.domElement);\r\n            controls.enableDamping = true;\r\n            \r\n            scene.add(new THREE.AmbientLight(0xffffff, 0.8));\r\n            const dirLight = new THREE.DirectionalLight(0xffffff, 0.5);\r\n            dirLight.position.set(5, 10, 7);\r\n            scene.add(dirLight);\r\n\r\n            capacitorGroup = new THREE.Group();\r\n            scene.add(capacitorGroup);\r\n            \r\n            vectorGroup = new THREE.Group();\r\n            scene.add(vectorGroup);\r\n\r\n            buildCapacitor();\r\n            animate();\r\n        }\r\n\r\n        function clearGroup(group) {\r\n            for (let i = group.children.length - 1; i >= 0; i--) {\r\n                const obj = group.children[i];\r\n                if(obj.geometry) obj.geometry.dispose();\r\n                if(obj.material) {\r\n                    if(Array.isArray(obj.material)) obj.material.forEach(m => m.dispose());\r\n                    else obj.material.dispose();\r\n                }\r\n                group.remove(obj);\r\n            }\r\n        }\r\n\r\n        function buildCapacitor() {\r\n            clearGroup(capacitorGroup);\r\n            plates = []; fieldLines = []; dipoles = []; \r\n            chargeGroups.pos = null; chargeGroups.neg = null;\r\n\r\n            const width = Math.sqrt(state.A) * 200; \r\n            const height = Math.sqrt(state.A) * 200;\r\n            const depth = 0.5;\r\n            const separation = state.d * 10; \r\n\r\n            const matPos = new THREE.MeshPhongMaterial({ color: 0xef4444, emissive: 0x330000, transparent: true, opacity: 0.9 });\r\n            const matNeg = new THREE.MeshPhongMaterial({ color: 0x3b82f6, emissive: 0x000033, transparent: true, opacity: 0.9 });\r\n\r\n            const geoPlate = new THREE.BoxGeometry(depth, height, width);\r\n            \r\n            const platePos = new THREE.Mesh(geoPlate, matPos);\r\n            platePos.position.x = -separation \/ 2;\r\n            capacitorGroup.add(platePos);\r\n            plates.push(platePos);\r\n\r\n            const plateNeg = new THREE.Mesh(geoPlate, matNeg);\r\n            plateNeg.position.x = separation \/ 2;\r\n            capacitorGroup.add(plateNeg);\r\n            plates.push(plateNeg);\r\n\r\n            createDynamicCharges(platePos, true, width, height);\r\n            createDynamicCharges(plateNeg, false, width, height);\r\n\r\n            if (state.showDielectric) {\r\n                const dielectricGeo = new THREE.BoxGeometry(separation - 1, height * 0.9, width * 0.9);\r\n                const dielectricMat = new THREE.MeshPhongMaterial({ \r\n                    color: 0x22c55e, transparent: true, opacity: 0.15, side: THREE.DoubleSide\r\n                });\r\n                const dielectricBlock = new THREE.Mesh(dielectricGeo, dielectricMat);\r\n                capacitorGroup.add(dielectricBlock);\r\n\r\n                if (state.showDipoles) addDipolesBox(separation, height, width);\r\n            }\r\n\r\n            addFieldLinesPlates(separation, width, height);\r\n            \r\n            updatePhysicsVisuals();\r\n        }\r\n\r\n        function createDynamicCharges(plate, isPositive, w, h) {\r\n            const count = Math.floor((state.V \/ 500) * 40);\r\n            if(count === 0) return;\r\n\r\n            const group = new THREE.Group();\r\n            \r\n            const canvas = document.createElement('canvas');\r\n            canvas.width = 64; canvas.height = 64;\r\n            const ctx = canvas.getContext('2d');\r\n            ctx.fillStyle = \"white\";\r\n            ctx.font = \"bold 50px Arial\";\r\n            ctx.textAlign = \"center\";\r\n            ctx.textBaseline = \"middle\";\r\n            ctx.fillText(isPositive ? \"+\" : \"-\", 32, 32);\r\n            const texture = new THREE.CanvasTexture(canvas);\r\n            \r\n            const sphereGeo = new THREE.SphereGeometry(0.2, 12, 12);\r\n            const sphereMat = new THREE.MeshPhongMaterial({ \r\n                color: isPositive ? 0xffdddd : 0xddddff, \r\n                emissive: isPositive ? 0xff0000 : 0x0000ff, \r\n                emissiveIntensity: 0.3 \r\n            });\r\n            const spriteMat = new THREE.SpriteMaterial({ map: texture, transparent: true, depthTest: false});\r\n\r\n            for (let i = 0; i < count; i++) {\r\n                const mesh = new THREE.Mesh(sphereGeo, sphereMat);\r\n                const sprite = new THREE.Sprite(spriteMat);\r\n                sprite.scale.set(0.4, 0.4, 1);\r\n                mesh.add(sprite);\r\n                \r\n                mesh.position.set(\r\n                    plate.position.x + (isPositive ? 0.3 : -0.3),\r\n                    (Math.random() - 0.5) * h * 0.85,\r\n                    (Math.random() - 0.5) * w * 0.85\r\n                );\r\n                group.add(mesh);\r\n            }\r\n            \r\n            capacitorGroup.add(group);\r\n            if(isPositive) chargeGroups.pos = group;\r\n            else chargeGroups.neg = group;\r\n        }\r\n\r\n        function addFieldLinesPlates(sep, w, h) {\r\n            const lineMat = new THREE.LineBasicMaterial({ color: 0xeab308, transparent: true, opacity: 0.3 });\r\n            const rows = 5; const cols = 5;\r\n\r\n            for (let i = 0; i < rows; i++) {\r\n                for (let j = 0; j < cols; j++) {\r\n                    const y = (i - rows\/2 + 0.5) * (h\/rows);\r\n                    const z = (j - cols\/2 + 0.5) * (w\/cols);\r\n                    const points = [\r\n                        new THREE.Vector3(-sep\/2 + 0.6, y, z), \r\n                        new THREE.Vector3(sep\/2 - 0.6, y, z)\r\n                    ];\r\n                    const geo = new THREE.BufferGeometry().setFromPoints(points);\r\n                    const line = new THREE.Line(geo, lineMat);\r\n                    capacitorGroup.add(line);\r\n                    fieldLines.push(line);\r\n                }\r\n            }\r\n        }\r\n        \r\n        function addDipolesBox(sep, h, w) {\r\n            const count = 20;\r\n            \r\n            for (let i = 0; i < count; i++) {\r\n                const x = (Math.random() - 0.5) * (sep - 3);\r\n                const y = (Math.random() - 0.5) * h * 0.7;\r\n                const z = (Math.random() - 0.5) * w * 0.7;\r\n\r\n                const dipole = new THREE.Group();\r\n                dipole.position.set(x, y, z);\r\n                \r\n                dipole.userData.randomRot = new THREE.Euler(\r\n                    Math.random() * Math.PI,\r\n                    Math.random() * Math.PI,\r\n                    Math.random() * Math.PI\r\n                );\r\n                dipole.rotation.copy(dipole.userData.randomRot);\r\n\r\n                const bodyGeo = new THREE.CylinderGeometry(0.05, 0.05, 0.8, 6);\r\n                const bodyMat = new THREE.MeshBasicMaterial({ color: 0xaaaaaa });\r\n                const body = new THREE.Mesh(bodyGeo, bodyMat);\r\n                body.rotation.x = Math.PI \/ 2; \r\n                dipole.add(body);\r\n\r\n                const poleGeo = new THREE.SphereGeometry(0.12, 8, 8);\r\n                const matP = new THREE.MeshBasicMaterial({ color: 0xef4444 });\r\n                const poleP = new THREE.Mesh(poleGeo, matP);\r\n                poleP.position.z = 0.45; \r\n                dipole.add(poleP);\r\n\r\n                const matN = new THREE.MeshBasicMaterial({ color: 0x3b82f6 });\r\n                const poleN = new THREE.Mesh(poleGeo, matN);\r\n                poleN.position.z = -0.45; \r\n                dipole.add(poleN);\r\n\r\n                capacitorGroup.add(dipole);\r\n                dipoles.push(dipole);\r\n            }\r\n        }\r\n\r\n        function updatePhysicsVisuals() {\r\n            let C, Q, U;\r\n            const d_m = state.d \/ 1000.0; \r\n            const A_m = state.A;\r\n            \r\n            \/\/ 1. C\u00e1lculo de Capacitancia y Energ\u00eda (afectados por er)\r\n            C = (e0 * state.er * A_m) \/ d_m;\r\n            Q = C * state.V;\r\n            U = 0.5 * C * state.V * state.V;\r\n\r\n            \/\/ 2. C\u00e1lculo de Campos El\u00e9ctricos\r\n            \r\n            \/\/ Campo en el Vac\u00edo (E0): Siempre V\/d, independiente del material\r\n            \/\/ Este es el campo \"externo\" aplicado.\r\n            const E0 = state.V \/ d_m; \r\n            \r\n            \/\/ Campo Neto (E): Es el campo resultante dentro del diel\u00e9ctrico.\r\n            \/\/ Si hay diel\u00e9ctrico, se reduce: E = E0 \/ er\r\n            \/\/ Si no hay, es igual a E0.\r\n            let E;\r\n            if (state.showDielectric) {\r\n                E = E0 \/ state.er;\r\n            } else {\r\n                E = E0;\r\n            }\r\n            \r\n            \/\/ Campo Inducido (Ei): Campo generado por la polarizaci\u00f3n.\r\n            \/\/ Ei = E0 - E (Vectorialmente opuesto)\r\n            \/\/ Magnitud: Ei = E0 - E = E0 * (1 - 1\/er)\r\n            let Ei = 0;\r\n            if (state.showDielectric) {\r\n                Ei = E0 * (1 - 1\/state.er);\r\n            }\r\n\r\n            \/\/ UI Updates\r\n            document.getElementById('resC').innerText = (C * 1e12).toFixed(2) + \" pF\";\r\n            document.getElementById('resQ').innerText = (Q * 1e9).toFixed(2) + \" nC\";\r\n            document.getElementById('resE').innerText = (E \/ 1000).toFixed(2) + \" kV\/m\";\r\n            document.getElementById('resU').innerText = (U * 1e6).toFixed(2) + \" \u03bcJ\";\r\n\r\n            const intensity = state.V \/ 500.0;\r\n            \r\n            if(chargeGroups.pos) chargeGroups.pos.visible = state.V > 0;\r\n            if(chargeGroups.neg) chargeGroups.neg.visible = state.V > 0;\r\n            \r\n            fieldLines.forEach(l => { l.material.opacity = intensity * 0.5; });\r\n\r\n            \/\/ Animaci\u00f3n Dipolos\r\n            const targetQuat = new THREE.Quaternion();\r\n            targetQuat.setFromUnitVectors(new THREE.Vector3(0, 0, 1), new THREE.Vector3(1, 0, 0));\r\n            \r\n            dipoles.forEach(d => {\r\n                const randomQuat = new THREE.Quaternion().setFromEuler(d.userData.randomRot);\r\n                d.quaternion.slerpQuaternions(randomQuat, targetQuat, intensity);\r\n            });\r\n\r\n            \/\/ --- Vectores de Campo (Correcci\u00f3n L\u00f3gica) ---\r\n            clearGroup(vectorGroup);\r\n            \r\n            if (state.showVectors && state.V > 0) {\r\n                \r\n                \/\/ Escala: 100 kV\/m = 1 unidad de largo\r\n                const scaleFactor = 0.01 * 10; \r\n                const direction = new THREE.Vector3(1, 0, 0); \/\/ +X\r\n                \r\n                \/\/ --- 1. Vector Rojo (E0 - Vac\u00edo) ---\r\n                \/\/ Su longitud depende SOLO de V y d. No cambia con el material.\r\n                const len0 = (E0 \/ 1000) * scaleFactor;\r\n                const vPos0 = new THREE.Vector3(0, 3, 0);\r\n                const vE0 = new THREE.ArrowHelper(direction, vPos0, len0, 0xef4444, len0 * 0.2, len0 * 0.1);\r\n                vectorGroup.add(vE0);\r\n                \r\n                \/\/ --- Si hay Diel\u00e9ctrico ---\r\n                if (state.showDielectric) {\r\n                    \r\n                    \/\/ --- 2. Vector Celeste (Ei - Inducido) ---\r\n                    \/\/ Longitud proporcional a Ei. Sentido opuesto (-X).\r\n                    const lenI = (Ei \/ 1000) * scaleFactor;\r\n                    \r\n                    if(lenI > 0.05) {\r\n                        const vPosI = new THREE.Vector3(0, 2.5, 0);\r\n                        \/\/ Direcci\u00f3n negativa\r\n                        const vEi = new THREE.ArrowHelper(direction.clone().negate(), vPosI, lenI, 0x00bcd4, lenI * 0.2, lenI * 0.1);\r\n                        vectorGroup.add(vEi);\r\n                    }\r\n                    \r\n                    \/\/ --- 3. Vector Verde (E - Neto) ---\r\n                    \/\/ Longitud proporcional a E. Debe ser MENOR que E0.\r\n                    const lenNet = (E \/ 1000) * scaleFactor;\r\n                    const vPosNet = new THREE.Vector3(0, 2.0, 0);\r\n                    const vE = new THREE.ArrowHelper(direction, vPosNet, lenNet, 0x22c55e, lenNet * 0.2, lenNet * 0.1);\r\n                    vectorGroup.add(vE);\r\n                }\r\n            }\r\n        }\r\n\r\n        function animate() {\r\n            requestAnimationFrame(animate);\r\n            controls.update();\r\n            renderer.render(scene, camera);\r\n        }\r\n\r\n        function setupEvents() {\r\n            const bindSlider = (id, key, displayId, suffix, factor = 1) => {\r\n                const el = document.getElementById(id);\r\n                el.oninput = function() {\r\n                    state[key] = parseFloat(this.value) * factor;\r\n                    document.getElementById(displayId).innerText = this.value + \" \" + suffix;\r\n                    buildCapacitor();\r\n                }\r\n            };\r\n\r\n            bindSlider('sldV', 'V', 'valV', 'V');\r\n            bindSlider('sldA', 'A', 'valA', ' m\u00b2');\r\n            bindSlider('sldD', 'd', 'valD', ' mm');\r\n\r\n            document.getElementById('materialSelect').onchange = function() {\r\n                state.er = parseFloat(this.value);\r\n                state.material = this.options[this.selectedIndex].text;\r\n                buildCapacitor();\r\n            }\r\n\r\n            document.getElementById('tglDielectric').onclick = function() {\r\n                this.classList.toggle('active');\r\n                state.showDielectric = this.classList.contains('active');\r\n                buildCapacitor();\r\n            }\r\n            \r\n            document.getElementById('tglDipoles').onclick = function() {\r\n                this.classList.toggle('active');\r\n                state.showDipoles = this.classList.contains('active');\r\n                buildCapacitor();\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                updatePhysicsVisuals();\r\n            }\r\n        }\r\n\r\n        window.addEventListener('resize', () => {\r\n            camera.aspect = window.innerWidth \/ window.innerHeight;\r\n            camera.updateProjectionMatrix();\r\n            renderer.setSize(window.innerWidth, window.innerHeight);\r\n        });\r\n\r\n        init3D();\r\n        setupEvents();\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; Capacitancia Placas Paralelas Capacitor de Placas Paralelas Simulacion Fisica Interactiva Parametros Fisicos Voltaje (V)100 V Area (A)0.01 m\u00b2 Separacion (d)2.0 mm Material Dielectrico&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-5824","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>dielectricos_capacitores - 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\/dielectricos_capacitores\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"dielectricos_capacitores - F\u00edsica 2\" \/>\n<meta property=\"og:description\" content=\"FLUXAR &#8211; Capacitancia Placas Paralelas Capacitor de Placas Paralelas Simulacion Fisica Interactiva Parametros Fisicos Voltaje (V)100 V Area (A)0.01 m\u00b2 Separacion (d)2.0 mm Material Dielectrico&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/dielectricos_capacitores\/\" \/>\n<meta property=\"og:site_name\" content=\"F\u00edsica 2\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-19T18:01:17+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\/dielectricos_capacitores\/\",\"url\":\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/dielectricos_capacitores\/\",\"name\":\"dielectricos_capacitores - F\u00edsica 2\",\"isPartOf\":{\"@id\":\"https:\/\/fisica2.fica.unsl.edu.ar\/#website\"},\"datePublished\":\"2026-03-08T14:11:44+00:00\",\"dateModified\":\"2026-03-19T18:01:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/dielectricos_capacitores\/#breadcrumb\"},\"inLanguage\":\"es-AR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/dielectricos_capacitores\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/dielectricos_capacitores\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Inicio\",\"item\":\"https:\/\/fisica2.fica.unsl.edu.ar\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"dielectricos_capacitores\"}]},{\"@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":"dielectricos_capacitores - 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\/dielectricos_capacitores\/","og_locale":"es_ES","og_type":"article","og_title":"dielectricos_capacitores - F\u00edsica 2","og_description":"FLUXAR &#8211; Capacitancia Placas Paralelas Capacitor de Placas Paralelas Simulacion Fisica Interactiva Parametros Fisicos Voltaje (V)100 V Area (A)0.01 m\u00b2 Separacion (d)2.0 mm Material Dielectrico&hellip;","og_url":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/dielectricos_capacitores\/","og_site_name":"F\u00edsica 2","article_modified_time":"2026-03-19T18:01:17+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\/dielectricos_capacitores\/","url":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/dielectricos_capacitores\/","name":"dielectricos_capacitores - F\u00edsica 2","isPartOf":{"@id":"https:\/\/fisica2.fica.unsl.edu.ar\/#website"},"datePublished":"2026-03-08T14:11:44+00:00","dateModified":"2026-03-19T18:01:17+00:00","breadcrumb":{"@id":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/dielectricos_capacitores\/#breadcrumb"},"inLanguage":"es-AR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/dielectricos_capacitores\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/dielectricos_capacitores\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Inicio","item":"https:\/\/fisica2.fica.unsl.edu.ar\/"},{"@type":"ListItem","position":2,"name":"dielectricos_capacitores"}]},{"@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\/5824","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=5824"}],"version-history":[{"count":52,"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/pages\/5824\/revisions"}],"predecessor-version":[{"id":6715,"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/pages\/5824\/revisions\/6715"}],"wp:attachment":[{"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/media?parent=5824"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}