Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Mathematica - Specific shading vs global - Mesh or ListPlot?

  1. Mar 31, 2010 #1
    Hi, I am trying to shade two portions of the polygon defined by the dotted line in this code. The Mesh and MeshFunction cmds seem to allot global shading only. What is the best tool to shade, say half of the aforementioned polygon?

    Function[{LtMarg, BotMarg, RtMarg, HVal, DVal, rVal},
    Graphics[{Mesh -> True, EdgeForm[{Thick, Blue}], FaceForm[Pink],
    Polygon[{{0.5, 0}, {1/2,
    HVal - 1/2}, {(HVal - DVal + 1)/2, (DVal + HVal - 1)/
    2}, {(HVal - DVal + 1)/2, 0}}], EdgeForm[{Thick, Green}],
    White, Rectangle[], Blue, Text[0, {0.01, BotMarg}],
    Text[0, {LtMarg, 0}], Text[l, {LtMarg, 1}], Text[t, {1, BotMarg}],
    Line[{{0, HVal}, {0.5, HVal - 0.5}, {1, HVal}}],
    Line[{{0.5, HVal - 0.5}, {0.5, 0}}],
    Line[{{0, DVal}, {0.5, DVal - 0.5}, {1, DVal}}],
    Text[Vh, {LtMarg, HVal}], Text[Vd, {LtMarg, DVal}],
    Text[Vh, {RtMarg, HVal}], Text[Vd, {RtMarg, DVal}], Dotted,
    Line[{{(DVal - HVal + 1)/2,
    0}, {(DVal - HVal + 1)/2, (DVal + HVal - 1)/2}, {1/2,
    HVal - 1/2}, {(HVal - DVal + 1)/2, (DVal + HVal - 1)/
    2}, {(HVal - DVal + 1)/2,
    0}}]}]][-0.03, -0.03, 1.035, 0.8, 0.65, 0.1]
     
  2. jcsd
  3. Mar 31, 2010 #2

    Hepth

    User Avatar
    Gold Member

    I would just put another polygon over it, with some transparency in both the poly and its edges.

    Code (Text):
    Function[{LtMarg, BotMarg, RtMarg, HVal, DVal, rVal},
      Graphics[{Mesh -> True, EdgeForm[{Thick, Blue}], FaceForm[Pink],
        Polygon[{{0.5, 0}, {1/2,
           HVal - 1/2}, {(HVal - DVal + 1)/2, (DVal + HVal - 1)/
            2}, {(HVal - DVal + 1)/2, 0}}], EdgeForm[{Thick, Green}],
        White, Rectangle[], Blue, Text[0, {0.01, BotMarg}],
        Text[0, {LtMarg, 0}], Text[l, {LtMarg, 1}], Text[t, {1, BotMarg}],
         Line[{{0, HVal}, {0.5, HVal - 0.5}, {1, HVal}}],
        Line[{{0.5, HVal - 0.5}, {0.5, 0}}],
        Line[{{0, DVal}, {0.5, DVal - 0.5}, {1, DVal}}],
        Text[Vh, {LtMarg, HVal}], Text[Vd, {LtMarg, DVal}],
        Text[Vh, {RtMarg, HVal}], Text[Vd, {RtMarg, DVal}], Dotted,
        Line[{{(DVal - HVal + 1)/2,
           0}, {(DVal - HVal + 1)/2, (DVal + HVal - 1)/2}, {1/2,
           HVal - 1/2}, {(HVal - DVal + 1)/2, (DVal + HVal - 1)/
            2}, {(HVal - DVal + 1)/2, 0}}], Opacity[0.2],
        EdgeForm[{Transparent}],
        Polygon[{{(DVal - HVal + 1)/2,
           0}, {(DVal - HVal + 1)/2, (DVal + HVal - 1)/2}, {1/2,
           HVal - 1/2}, {1/2, 0}}]}]][-0.03, -0.03, 1.035, 0.8, 0.65, 0.1]
     
  4. Apr 1, 2010 #3
    Ah! Thank you! That is what I ultimately needed to do, and was trying to make into a more difficult task!
     
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook