आधा तीर खींचें
मैं एक दूसरे के बगल में दो आधे तीर में गणितज्ञ को आकर्षित करना चाहता हूं । कुछ इस तरह:
यहाँ मेरा प्रयास है:
x0 = -0.2;
y0 = -0.2;
k = -1;
dist = 0.02;(*distance between two arrows*)
c1 = Max[c /. Solve[y0 == k x0 + c, c]];
c2 = Max[c /. Solve[-y0 == k (-x0) + c, c]];
xA = x0 - dist/Sqrt[1 + k^2];
yA = k xA + c1;
xB = -x0 - dist/Sqrt[1 + k^2];
yB = k xB + c2;
Graphics[
{{Thick, Arrowheads[0.05], Arrow[{{x0, y0}, -{x0, y0}}],
Arrow[{{xB, yB}, {xA, yA}}]},
{White, Polygon[{{x0, y0}, -{x0, y0}, {xB, yB}, {xA, yA}}]}},
PlotRange -> {{-1., 1.}, {-1., 1.}}, Frame -> True,
PlotRangeClipping -> True]
कोड को आप देख सकते हैं कि मैंने दो Arrowएस खींचा है , जबकि प्रत्येक तीर के दाहिने हिस्से को सफेद करके कवर किया है Polygon। यहाँ मेरा परिणाम है:
(तीर 45 डिग्री के कोण के नीचे हैं जो उद्देश्य पर किया गया था।)
मैं सोच रहा था कि क्या आधे तीर केGraphics लिए गणितज्ञ में कुछ कार्य है । या अगर कोई किसी तरह आधा तीर पाने के लिए संशोधित कर सकता है । मैं किसी भी सुझाव के लिए आभारी रहूंगा।Arrow Graphics
जवाब
हम उपयोग करके नई तीर शैली भी डिज़ाइन कर सकते हैं Graphics
arrowStyle =
Graphics[{Black, Polygon[{{0, 0}, {-1, .2}, {-.8, 0}, {0, 0}}]}];
semiArrow = Arrowheads[{{0.2, 1, arrowStyle}}];
Graphics[{semiArrow, Arrow[{{0, 0}, {1, 1}}],
Arrow[{{1 + .1, 1 - .1}, {.1, -.1}}]}]The above codes does not suitable for 3D,why not?
यह पहला प्रयास है। देर से हम एक और शैली प्राप्त करने के लिए लाइन की मोटाई और तीर की स्थिति को समायोजित कर सकते हैं।
अद्यतन उपरोक्त कोड 3D के लिए उपयुक्त नहीं है, क्यों नहीं?
Clear["`*"];
arrowStyle =
Graphics[{Black, FaceForm[Red],
Polygon[{{0, 0}, {-1, .2}, {-.8, 0}, {0, 0}}], EdgeForm[],
FaceForm[], Polygon[{{0, 0}, {-1, -.2}, {-.8, 0}, {0, 0}}]}];
semiArrow = Arrowheads[{{0.2, 1, arrowStyle}}];
Graphics3D[{semiArrow, Arrow[{{0, 0, 0}, {1, 1, 1}}]}]
यह कोड यू + 21 सीसी के साथ यूनिकोड वर्ण "राइट साइड हापून ओवर लेफ्ट हर्पून" जैसा दिखता है। यह यहाँ पाया जा सकता है । हम इसे इस तरह से गणितज्ञ में उपयोग कर सकते हैं:
harpoon = FromCharacterCode@FromDigits["21cc", 16];
Graphics[{
Text[Style[harpoon, FontSize -> 25], {0, 0}],
Text[Style[harpoon, FontSize -> 25], {10, 5}],
Rotate[
Text[Style[harpoon, FontSize -> 25], {5, 5}],
30 Degree
]
}]
अन्य फ़ॉन्ट आपके उदाहरण के समान दिख सकते हैं।
संपादित करें: चूंकि मैं आपका अंतिम लक्ष्य नहीं जानता, इसलिए यहां मेरा प्रयास है।
imSize = 100;
poly = Polygon[{{0, 0}, {0, 2}, {9, 2}, {9, 4}, {14, 0}}];
arrows = Rotate[Column[{Graphics[poly, ImageSize -> imSize],
Rotate[Graphics[poly, ImageSize -> imSize], 180 Degree]},
Spacings -> 0], 45 Degree];
Overlay[{Graphics[{FaceForm[], Rectangle[{-1, -1}, {1, 1}]},
Frame -> True], arrows}, Alignment -> Center]
poly = Polygon[{{0, 0}, {0, 2}, {9, 2}, {9, 4}, {14, 0}}];
Rotate[Column[{Graphics[poly], Rotate[Graphics[poly], 180 Degree]}], 45 Degree]