मैं इस तरह एक स्पीकर होल पैटर्न बनाना चाहता हूं:
लेकिन मुझे यकीन नहीं है कि कहां से शुरू करना है। क्या इलस्ट्रेटर या इसी तरह के सॉफ़्टवेयर में श्रमसाध्य स्थिति के बिना इसे प्राप्त किया जा सकता है?
मैं इस तरह एक स्पीकर होल पैटर्न बनाना चाहता हूं:
लेकिन मुझे यकीन नहीं है कि कहां से शुरू करना है। क्या इलस्ट्रेटर या इसी तरह के सॉफ़्टवेयर में श्रमसाध्य स्थिति के बिना इसे प्राप्त किया जा सकता है?
जवाबों:
मैं अपनी विधि जोड़ूंगा, क्योंकि यह मुझे लगता है कि यह सबसे सरल है। मूल रूप से, आप:
यहाँ पायथन लिपि (आवश्यकता svgwrite
और math
) है:
"""
This script has two purposes:
- Simple demonstration of using Python (specifically the svgwrite library) to create an SVG file
- Answer the question http://graphicdesign.stackexchange.com/q/56200/21332
"""
# n[x] should give the number of circles at a distance of (x+1)*d from the center
d = 30
n = [8, 16, 20, 20, 20]
r = 7 # radius of each circle
# Calculate the center points of each circle
circles = [(0, 0)] # There is always one circle in the middle
import math
for i in range(0, len(n)):
m = n[i] # m is the number of circle in this "row", i is the number of the row
for j in range(0, m): # for each circle...
phi = 2*math.pi*j/m # Calculate the angle at which the circle will be
# Convert polar coordinates to cartesian
x = d*(i+1)*math.cos(phi)
y = d*(i+1)*math.sin(phi)
circles.append((x, y))
# Write circles to SVG
import svgwrite
# Determine correct size of drawing
width = max([c[0] for c in circles])*2.2
height = max([c[1] for c in circles])*2.2
dwg = svgwrite.Drawing('demo.svg', size = (width, height)) # output will be in the same folder as this script
# offsets for shifting all circles so that the SVG can be easily viewed in browser
x_offset = min([c[0] for c in circles])*1.1
y_offset = min([c[1] for c in circles])*1.1
for c in circles:
adjusted_x = c[0] - x_offset
adjusted_y = c[1] - y_offset
dwg.add(svgwrite.shapes.Circle((adjusted_x, adjusted_y), r))
# Save the file
dwg.save()
# Print SVG source to console
print(dwg.tostring())
यह उस निर्देशिका में एक SVG फ़ाइल बनाएगा, जिसे आप एक ब्राउज़र में खोल सकते हैं:
या इलस्ट्रेटर में:
तुम मुझे से एक बड़ा Illustrator खिड़की का उपयोग करना चाहिए, हालांकि, मेरा थोड़ा आराम से काम करने के लिए बहुत छोटा था ...
यदि आपके पास पाइथन स्क्रिप्ट नहीं हो सकती हैं तो फाइलें बनाएं (हो सकता है कि यह ऑनलाइन पायथन इंटरप्रेटर में चल रही हो) तो बस टिप्पणी करें dwg.save()
। अंतिम पंक्ति एसवीजी की सामग्री को सांत्वना के लिए प्रिंट करती है, आप इसे नोटपैड में पेस्ट कर सकते हैं, फिर के रूप में सहेज सकते हैं my file.svg
।
मैं चला गया और कुछ "साफ" सुविधाओं को जोड़ा, जैसे:
आप आसानी से इन्हें छोड़ सकते हैं, क्योंकि इलस्ट्रेटर कैनवास की सीमा के बाहर की वस्तुओं को छिपा नहीं पाता है और आपको मैन्युअल रूप से कैनवास का आकार बदलने की अनुमति देता है:
आप वास्तव में निर्दिष्ट नहीं करते हैं कि क्या छवि ऐसी चीज़ है जिसे आपने अपने आप को टीके में उत्पन्न किया है, हाथ में है या नहीं। यदि आपके पास पहले से ही यह कोड है तो आप टीके एप्लीकेशन कैनवास को ईपीएस के रूप में निर्यात कर सकते हैं और इसे इलस्ट्रेटर में खोल सकते हैं। आपको बस कॉल करने की आवश्यकता है canvas.postscript()
।
अजगर 2 में सरल नमूना:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from Tkinter import *
import math
def circle(c, x, y, r=10):
return c.create_oval(x-r, y-r, x+r, y+r, width=0, fill="black")
def draw_circles(c, num, r):
step = (2.0*math.pi)/float(num)
for i in range(num):
x = 400 + r * math.sin(i*step)
y = 400 + r * math.cos(i*step)
circle(c, x, y)
main_window = Tk()
main_window.title('Pattern to EPS')
canvas = Canvas(main_window,
width=800, height=800,
bg = 'white')
circle(canvas, 400, 400)
for i in range(1, 6):
draw_circles(canvas, i*8, i*60)
canvas.pack()
# next line generates a eps file
canvas.postscript(file = "pattern.eps", width=800, height=800 )
# uncomment next line if you want to see the tk window
# main_window.mainloop()
इसके परिणामस्वरूप एक फ़ाइल का नाम है "patten.eps"
।
चित्र 1 : इलस्ट्रेटर में उत्पन्न ईपीएस को खोलना।
आप इसे एक्सटेंशनस्क्रिप्ट, एसवीजी या सीधे ईपीएस प्रोग्राम में लिख सकते हैं, जिसमें से सभी को करना आसान है (कुछ उदाहरणों के लिए नीचे परिशिष्ट देखें)। संसाधनों के लिए निम्न पोस्ट देखें:
पुनश्च : मैं नहीं जानता कि क्या इसके लायक स्क्रिप्टिंग के रूप में इसे बारी बारी से उपकरण और Ctrl+ की मदद से उन्हें खींचने में लगभग 3 मिनट लगते हैंD
चित्र 2 : ऊपर की विधि वाला एक छल्ला
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 800 800
%%Title: pattern
%%Creator: joojaa
%%CreationDate: 2015-07-08
%%EndComments
/c {newpath 10 0 360 arc closepath fill} def
/cr {
dup 8 mul 2 dict begin /i exch def /r exch 60 mul def
1 1 i {360 i div mul dup sin exch cos r mul exch r mul c} for
end
} def
400 400 translate
0 0 c
1 1 6 {cr} for
%%EOF
#target illustrator
var doc = app.activeDocument;
function circle(x,y) {
doc.pathItems.ellipse(x+5,y-5,10,10);
}
function draw_circles(num, r){
var step = (2.0*Math.PI)/num;
for (var i = 0; i < num; i++) {
var x = -200 + r * Math.sin(i*step);
var y = 200 + r * Math.cos(i*step);
circle(x, y);
}
}
circle(-200,200);
for (var i = 1; i <= 6; i++) {
draw_circles(i*8, i*30);
}
आप ड्रॉस्टर स्ट्रोक का उपयोग करके इलस्ट्रेटर में अपने उदाहरण के समान जल्दी से कुछ बना सकते हैं। समान रूप से गोलाकार छल्ले को आसानी से खींचने के लिए, मैं पोलर ग्रिड टूल का उपयोग करूंगा ।
तो फिर यह केवल अपनी पसंद के अनुसार अंतराल के साथ धराशायी करने के लिए रिंगों पर स्ट्रोक स्थापित करने की बात है:
आप निश्चित रूप से यदि आवश्यक हो तो अधिक डॉट्स जोड़ने के लिए प्रत्येक पंक्ति को ठीक से ट्यून कर सकते हैं, बस व्यक्तिगत अंतर मान बढ़ा या घटा सकते हैं। गैप बॉक्स सक्रिय होने के साथ, आप मूल्य को जल्दी बदलने के लिए अपने स्क्रॉल व्हील का उपयोग कर सकते हैं। Ctrl / Cmdमहीन वेतन वृद्धि में समायोजित करने के लिए स्क्रॉल करते हुए पकड़ें
इस विधि के साथ एक समस्या यह है कि कुछ डॉट्स में कुछ ओवरलैप हो सकते हैं:
यदि आप उन्हें सही होने की आवश्यकता है, तो उन्हें मैन्युअल रूप से संपादित करने की आवश्यकता हो सकती है। प्रति पंक्ति में अधिकतम 1 ओवरलैप होना चाहिए।
इस तरह के दोहराए जाने वाले पैटर्न के लिए इलस्ट्रेटर का विकृत और परिवर्तन प्रभाव एकदम सही है, लेकिन उस सटीक पैटर्न को प्राप्त करने के लिए इसमें कुछ ट्विकिंग की आवश्यकता होगी। बिंदीदार रेखा से शुरू करें (अपने उदाहरण के लिए 11 बिंदुओं के साथ)
के माध्यम से एक रूपांतरण प्रभाव जोड़ें Effect > Distort & Transform > Transform...
आप देखेंगे कि आंतरिक पंक्तियों में बहुत सारे डॉट्स हैं। यहीं से मैनुअल ट्विकिंग आती है, लेकिन आपको बाकी लोगों का पता लगाने के लिए काफी दूर जाना चाहिए।
Inkscape का उपयोग करें:
और परिणाम (ओपी की छवि से मेल खाने के लिए 22.5 डिग्री का उपयोग करते हुए):