Is there anyway to fill an irregular polygon with regular points but to also offset this regular point pattern with a defined angle offset from north? I make reference to an older answered post regarding the filling of polygons
You may run this code (adapted from this post I wrote some time ago) from the Python Console for controlling the spacing of your points and the inset from the North:
from qgis.core import * # Set the spacing spacing = 10 # Set the inset inset_x = 5 inset_y = 5 # Get the Coordinate Reference System and the extent from the loaded layer layer = iface.activeLayer() # load the layer as you want crs = layer.crs().toWkt() ext=layer.extent() # Create a new vector point layer points_layer = QgsVectorLayer('Point?crs=' + crs, 'grid', "memory") prov = points_layer.dataProvider() # Create the coordinates of the points in the grid points =  for ft in layer.getFeatures(): feat_geom = ft.geometry() # Set the extent of the new layer xmin = ext.xMinimum() + inset_x xmax = ext.xMaximum() ymin = ext.yMinimum() ymax = ext.yMaximum() - inset_y y = ymax while y >= ymin: x = xmin while x <= xmax: geom = QgsGeometry().fromPoint(QgsPoint(x, y)) feat = QgsFeature() point = QgsPoint(x,y) feat.setGeometry(QgsGeometry.fromPoint(point)) if feat_geom.contains(feat.geometry()): points.append(feat) x += spacing y = y - spacing prov.addFeatures(points) points_layer.updateExtents() # Add the layer to the map QgsMapLayerRegistry.instance().addMapLayer(points_layer)
For example, using a high value for the insets (
inset_x = 50 and
inset_y = 30), I get this result:
I hope having understood what you want. If you defined an angle instead of two insets, it is easy translating it as two length values (I can also edit the answer if you add more specific information about the problem).